Javamail發(fā)送郵件

1.添加Maven依賴
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
<dependency>
  <groupId>javax.activation</groupId>
  <artifactId>activation</artifactId>
  <version>1.1</version>
</dependency>
2.創(chuàng)建email.properties,設(shè)置發(fā)郵件郵箱的用戶名密碼
email.username=
email.password=
3.添加EmailAuthenticator繼承Authenticator
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class EmailAuthenticator extends Authenticator {

    private String username;

    private String password;

    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
    }
}
4.創(chuàng)建EmailUtil工具類
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public abstract class EmailUtil {

    private static Session session = null;

    private static EmailAuthenticator authenticator = null;

    static {
        try {
            InputStream inputStream = EmailUtil.class.getResourceAsStream("/email.properties");
            Properties properties = new Properties();
            properties.load(inputStream);

            authenticator = new EmailAuthenticator();
            String username = properties.getProperty("email.username");
            authenticator.setUsername(username);

            String password = properties.getProperty("email.password");
            authenticator.setPassword(password);

            String smtpHostName = "smtp." + username.split("@")[1];
            properties.put("mail.smtp.auth", "true");
            properties.put("mail.smtp.host", smtpHostName);

            session = Session.getInstance(properties, authenticator);
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private EmailUtil() { }

    /**
     * 通用發(fā)郵件方法
     */
    private static void send(List<String> recipients, SimpleEmail email) throws MessagingException {
        final MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(authenticator.getUsername()));
        InternetAddress[] addresses = new InternetAddress[recipients.size()];
        for (int index = 0; index < recipients.size(); index ++) {
            addresses[index] = new InternetAddress(recipients.get(index));
        }
        message.setRecipients(RecipientType.TO, addresses);
        message.setSubject(email.getSubject());
        message.setContent(email.getContent(), "text/html;charset=utf-8");

        Transport.send(message);
    }

    /**
     * 發(fā)送郵件
     */
    public static void send(String recipient, SimpleEmail email) throws MessagingException {
        List<String> recipients = new ArrayList<String>();
        recipients.add(recipient);
        send(recipients, email);
    }

    /**
     * 群發(fā)郵件
     */
    public static void massSend(List<String> recipients, SimpleEmail email) throws MessagingException {
        send(recipients, email);
    }
}
5.測試
public static void main(String[] args) throws Exception {
    SimpleEmail simpleEmail = new SimpleEmail();
    simpleEmail.setSubject("今天你學習了么?");
    simpleEmail.setContent("今天你寫博客了么");

    List<String> recipients = new ArrayList<String>();
    recipients.add("2668659188@qq.com");

    massSend(recipients, simpleEmail);
}

代碼地址:https://gitee.com/jsjack_wang/JavaDemo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • JavaMail是SUN提供給廣大Java開發(fā)人員的一款郵件發(fā)送和接受的一款開源類庫,支持常用的郵件協(xié)議,如:SM...
    恒宇少年閱讀 26,426評論 26 42
  • ?細雨斜陽瑟,雁陣過,骨寒徹。添燈去薄衾,執(zhí)筆著墨色。天寒多幾縷白霜,昨日歡笑尋何處。相思愁腸似入蠱,盼君歸來,解...
    聆聽大海的呱聲閱讀 168評論 0 0
  • 文/唐培蕊 Pray 小茗和她的男友,跟我在同一家醫(yī)院實習,但是因為是在不同的科室,所以兩人見面的機會并不多,活生...
    ENT_Pray閱讀 492評論 0 2
  • 前天,我在城里工地的一角 撿到一塊殘缺不全的瓦片 它和生活垃圾丟在一起 望著它 我不由想到了父親 我的父親,進城打...
    H細泉閱讀 271評論 4 7