JavaMail邮件发送功能包
Java 项目里想发邮件?JavaMail这个老牌工具真挺管用的,尤其适合 QQ 邮箱这种 SMTP 服务的邮件发送场景。你只需要配置好 SMTP 服务器地址和端口,比如smtp.qq.com
、587
(或者465
,看你开没开 SSL),引个 jar 包,就能开始愉快地发邮件了。
代码层面也不复杂,用Session
来配置连接参数,Message
来写邮件内容,用Transport.send()
一发就搞定。嗯,顺手还能设个发件人、抄送、主题、正文啥的,甚至还能写成 HTML 格式,看着也体面。
要是你项目用的是 Maven,那就直接在pom.xml
里加依赖;非 Maven 项目就老老实实把 jar 包扔到类路径里就行。注意,QQ 邮箱需要开启 SMTP 服务并拿到授权码,不是直接用邮箱密码哦。
下面是个简单示例,跑通就能发邮件了:
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.qq.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your_email@qq.com", "your_password");
}
});
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your_email@qq.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));
message.setSubject("邮件主题");
message.setText("邮件正文");
Transport.send(message);
System.out.println("邮件已发送");
如果你不想明文存密码,建议搞下 OAuth2;发带图或富文本的邮件,也别忘了用setContent()
来写 HTML。
你可以顺手看看下面这些资料,找 jar 包、看源码、查配置都挺方便:
如果你想快速实现邮件通知、系统报警、报表推送什么的,这个 jar 包用起来还挺省心的。
评论区