zoukankan      html  css  js  c++  java
  • JavaMail的使用之邮件发送

      收集
    发送邮件主要包括
    3个部分:创建连接,创建邮件体,发送邮件

    JavaMail中,是使用会话(Session)来管理连接的。创建一个连接,就需要创建一个会话。在会话中,有两个重要的因素,一是会话的属性,二是会话的认证。在我们使用Hotmail等邮件工具的时候,就要设置”SMTP服务器身份验证,也就是这里的会话的认证。

     

     

    首先,创建一个连接属性。

    Properties props = new Properties();

    props.put("mail.smtp.host","smtp.126.com");  //设置smtp的服务器地址是smtp.126.com

    props.put("mail.smtp.auth","true");          //设置smtp服务器要身份验证。

     

     

    在创建一个身份验证。身份验证稍微复杂一点,要创建一个Authenticator的子类,并重载getPasswordAuthentication()方法,代码如下:

    class PopupAuthenticator extends Authenticator {

        public PasswordAuthentication getPasswordAuthentication() {

            String username = "cqhcp"; //126邮箱登录帐号

            String pwd = "12345"; //登录密码

            return new PasswordAuthentication(username, pwd);

        }

    }

    创建身份验证的实例:

    PopupAuthenticator auth = new PopupAuthenticator();

     

    创建会话: 关于会话的创建,有两种方法,具体请参看后续的文章,这里只简单使用一种。

    Session session = Session.getInstance(props, auth);

     

     

    定义邮件地址:

    //发送人地址

    Address addressFrom = new InternetAddress("cqhcp@126.com", "George Bush");

    //收件人地址

    Address addressTo = new InternetAddress("webmaster@javazy.com", "George Bush");

    //抄送地址

    Address addressCopy = new InternetAddress("haocongping@gmail.com", "George Bush");

     

     

    创建邮件体:

    message.setContent("Hello", "text/plain");//或者使用message.setText("Hello");更详细的信息请参看后续文章.

    message.setSubject("Title");

    message.setFrom(addressFrom);

    message.addRecipient(Message.RecipientType.TO,addressTo);

    message.addRecipient(Message.RecipientType.CC,addressCopy);

    message.saveChanges();

     

     

    发送邮件的过程:

    Transport transport = session.getTransport("smtp");//创建连接

    transport.connect("smtp.126.com", "cqhcp", "12345");//连接服务器

    transport.send(message);//发送信息

    transport.close();//关闭连接

     

     

    整体程序的代码如下:

    class PopupAuthenticator extends Authenticator {

        public PasswordAuthentication getPasswordAuthentication() {

            String username = "cqhcp"; //163邮箱登录帐号

            String pwd = "12345"; //登录密码

            return new PasswordAuthentication(username, pwd);

        }

    }

     

     

    Properties props = new Properties();

    props.put("mail.smtp.host","smtp.126.com");

    props.put("mail.smtp.auth","true");

    PopupAuthenticator auth = new PopupAuthenticator();

    Session session = Session.getInstance(props, auth);

    MimeMessage message = new MimeMessage(session);

               

    Address addressFrom = new InternetAddress("cqhcp@126.com", "George Bush");

    Address addressTo = new InternetAddress("webmaster@javazy.com", "George Bush");

    Address addressCopy = new InternetAddress("haocongping@gmail.com", "George Bush");

     

    message.setContent("Hello", "text/plain");//或者使用message.setText("Hello");

    message.setSubject("Title");

    message.setFrom(addressFrom);

    message.addRecipient(Message.RecipientType.TO,addressTo);

    message.addRecipient(Message.RecipientType.CC,addressCopy);

    message.saveChanges();

     

    Transport transport = session.getTransport("smtp");

    transport.connect("smtp.126.com", "cqhcp", "12345");

    transport.send(message);

    transport.close();

  • 相关阅读:
    Atitit Server Side Include  ssi服务端包含规范 csi  esi
    Atitit 动态按钮图片背景颜色与文字组合解决方案
    Atitit 图像扫描器---基于扫描线
    Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
    Atitit usrqbg1834 html的逻辑化流程化 规范标准化解决方案
    Atitit  J2EE平台相关规范--39个  3.J2SE平台相关规范--42个
    Atitit jsr规范化分类 attilax总结
    Atitit attilax总结的对于attilax重要的jsr规范,以及需要增加的jsr规范
    Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
    Atitit jsr规范有多少个  407个。Jsr规范大全
  • 原文地址:https://www.cnblogs.com/QDuck/p/387615.html
Copyright © 2011-2022 走看看