java實現阿里雲郵箱發送郵件

1、pom,xml

  <dependency>
          <groupId>javax.mail</groupId>
          <artifactId>mail</artifactId>
          <version>1.4.7</version>
      </dependency>

2 、properties.ini

#默認的smtp域名
smtpServer = smtp.mxhichina.com
# 端口:非加密25,ssl加密465
port= 465
#阿里郵箱賬號
fromUser [email protected]
#郵箱密碼
fromUserPassword= ****

3.實體類

public class EmailInfo {

    private String smtpServer;// SMTP服務器地址
    private String port; // 端口
    private String fromUser;// 登錄SMTP服務器的用戶名,發送人郵箱地址
    private String fromUserPassword;// 登錄SMTP服務器的密碼
    private String toUser;   // 收件人
    private String subject; // 郵件主題
    private String content; // 郵件正文
    public EmailInfo() { }

    public EmailInfo(String toUser, String subject, String content) {
        this.toUser = toUser;
        this.subject = subject;
        this.content = content;
        this.smtpServer = PropKit.use("properties.ini").get("smtpServer");
        this.port = PropKit.use("properties.ini").get("port");
        this.fromUser = PropKit.use("properties.ini").get("fromUser");
        this.fromUserPassword = PropKit.use("properties.ini").get("fromUserPassword");
    }
 }

4.郵箱發送工具類

public class EmaiSender {

    public static void send(EmailInfo emailInfo){
        try {
            //設置SSL連接、郵件環境
            Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
            final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
            Properties props = System.getProperties();
            props.setProperty("mail.smtp.host", emailInfo.getSmtpServer());
            props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
            props.setProperty("mail.smtp.socketFactory.fallback", "false");
            props.setProperty("mail.smtp.port", emailInfo.getPort());
            props.setProperty("mail.smtp.socketFactory.port", emailInfo.getPort());
            props.setProperty("mail.smtp.auth", "true");
            //建立郵件會話
            Session session = Session.getDefaultInstance(props, new Authenticator() {
                //身份認證
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(emailInfo.getFromUser(), emailInfo.getFromUserPassword());
                }
            });
            //建立郵件對象
            MimeMessage message = new MimeMessage(session);
            //設置郵件的發件人、收件人、主題
            message.setFrom(new InternetAddress(emailInfo.getFromUser()));
            message.setRecipients(Message.RecipientType.TO, emailInfo.getToUser());
            message.setSubject(emailInfo.getSubject());
            //文本
            Multipart multipart = new MimeMultipart();
            // 創建一個包含HTML內容的MimeBodyPart
            BodyPart html = new MimeBodyPart();
            // 設置HTML內容
            html.setContent(emailInfo.getContent(), "text/html; charset=utf-8");
            multipart.addBodyPart(html);
            // 將MiniMultipart對象設置爲郵件內容
            message.setContent(multipart);
            message.setSentDate(new Date());
            message.saveChanges();
            //發送郵件
            Transport.send(message);
        } catch (Exception e) {
            System.out.println(e.toString());
        }

    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章