Javamail 两种不同方式分析

阅读更多
Javamail 两种不同方式分析
第一种: 登陆个人邮箱,以此邮箱为基础发送邮件:
 public static void sendTxtMail()
    {
        Properties props = new Properties();

        Session session = Session.getInstance(props, null);
        session.setDebug(true);// 打开debug模式,会打印发送细节到console
        Message message = new MimeMessage(session); // 实例化一个MimeMessage集成自abstract Message
                                                    // 。参数为session
        try
        {
            message.setFrom(new InternetAddress("xxxxxx")); // 设置发出方,使用setXXX设置单用户,使用addXXX添加InternetAddress[]

            message.setText("Test!"); // 设置文本内容 单一文本使用setText,Multipart复杂对象使用setContent

            message.setSubject("Test!"); // 设置标题

            message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); // 设置接收方

            /**
             * 使用静态方法每次发送需要建立一个到smtp服务器的链接,你可以手动控制连接状态
             * ,通过session获得tansport,连接到mailserver,而session就可以使用Session
             * .getDefaultInstance(props,null);获得
             */
            Transport transport = session.getTransport("smtp");
            transport.connect("smtp.126.com", "xxxx, "xxxx");//用户名,密码
            message.saveChanges();
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
            
        }
        catch (Exception e)
        {
            // 此处处理AddressException异常 [The exception thrown when a wrongly formatted address is
            // encountered.]

        } 

    }

第二种 本地有邮件服务已经启动。 linux 或者window 都应该有。具体不清楚 例子为linux:
try
{
    String from = "XXXX" + InetAddress.getLocalHost().getHostName();//?????????
    String host = "localhost";
    Properties props = new Properties();

    props.put("mail.smtp.host", host);
    props.put("mail.debug", "true");//debug
    Session mailSession = Session.getInstance(props);

    Message msg = new MimeMessage(mailSession);

    msg.setFrom(new InternetAddress(from));
    InternetAddress[] address = { new InternetAddress(XXXXXXX) };//?????
    msg.setRecipients(Message.RecipientType.TO, address);
    msg.setSubject("Test"); // ????
    msg.setSentDate(new Date()); //??

    // Set message content
    msg.setText("Test"); // ????

    // Send the message
    Transport.send(msg); //??

}
catch (Exception mex)
{
    // Prints all nested (chained) exceptions as well
    mex.printStackTrace();
}



 
   

 

你可能感兴趣的:(java,mail)