JavaMail发送邮件工具类
Java 的邮件发送工具类,挺实用的一个老牌方案,用起来也不复杂。核心用的是JavaMail API,你只要搞清楚几个关键对象怎么配合,比如 Session
、Transport
、Message
,基本就能跑起来。
发系统通知、报警信息、日报啥的,用它都还挺合适。代码结构也比较清晰,尤其是搭配一份封装好的工具类,直接调用就行,参数配置一下 SMTP 地址和账号密码就能发。
另外相关的jar 包也都配好了,像 javax.mail.jar
和 activation.jar
,不用到处找,打包拎走。
代码嘛,大致是这样的:
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.example.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username@example.com", "password");
}
});
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("from@example.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to@example.com"));
message.setSubject("Test Email");
message.setText("This is a test email.");
Transport.send(message);
注意点也有几个:SSL 连接要加参数,比如 mail.smtp.socketFactory.class
,不同邮箱服务的设置也不一样,发之前最好先测一轮。
如果你做的是告警系统、报表推送之类的功能,这类工具类可以直接上车,效率还蛮高的。想扩展也简单,比如加个附件、发 HTML 邮件,都有现成的例子。