Java 发送邮件,通过 SMTP 协议发送 Email

Java 中非常简单的发送邮件的方法,通过 SMTP 方式发送邮件 Email。

其中用到两个jar包,Oracle 官方提供的 javax.mail

Apache 提供的 commons-email

官方的 jar 包比较难用,我按照官方文档尝试没有成功

后来看到 Apache 的 commons-email-1.3.3 对官方的 emial api 进行了二次封装,简单易用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public static int send(String subject, String Msg) {//标题,内容
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.mxhichina.com");// 设置使用发电子邮件的邮件服务器
try {
email.setSSLOnConnect(Boolean.TRUE); // 设定是否使用SSL
email.setSmtpPort(465);//邮件服务器的端口
email.addTo("to@zhangnew.com");//目标地址(我也有企业邮箱哦)
email.setAuthentication("from@zhangnew.com", "******");//账户,密码
email.setFrom("from@zhangnew.com","发件人名称","utf-8");//地址,发件人,编码
email.setSubject(subject);//标题
email.setMsg(Msg);//内容
email.send();
return 1;
} catch (EmailException ex) {
ex.printStackTrace();
return -1;
}
}