前言:邮件发送功能是在开发过程中经常用到的,一个代办信息的产生,通常需要发邮件进行通知。
1.引入java-mail所用的.jar包。
2.获取邮件的配置
final Properties props = new Properties();
props.put("mail.smtp.host", ip);// 指定SMTP服务器ip
props.put("mail.smtp.port", port);// 指定SMTP服务器端口
props.put("mail.smtp.auth", "true");// 指定是否需要SMTP验证
props.put("mail.transport.protocol","smtp");//协议
props.put("mail.user",username);//用户名
props.put("mail.password", password);//密码
3.构建授权信息,用户进行smtp进行身份验证
Authenticator auth = new Authenticator() {
@Override
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
4.获取mailSession对象(javax.mail.Session保存邮件系统的配置属性和提供用户验证的信息)
Session mailSession = null;
mailSession = Session.getInstance(props,auth);
mailSession.setDebug(false);// 是否在控制台显示debug信息
5.获取邮件的发件人、收件人、邮件内容等
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(mailSender.getUserName()));// 发件人
// 创建邮件的接收者地址,并设置到邮件消息中
String[] recevieAddress = mailObject.getRecevieAddress();
Address[] tos = new InternetAddress[recevieAddress.length];
for (int i = 0; i < recevieAddress.length; i++) {
tos[i] = new InternetAddress(recevieAddress[i]);
}
message.addRecipients(Message.RecipientType.TO, tos);// 收件人
// 设置邮件内容
message.setContent(content, "text/html;charset=UTF-8");
// 邮件主题
message.setSubject(subject());
message.saveChanges();
6.发送邮件
Transport transport = mailSession.getTransport();
transport.connect();
transport.sendMessage(message, message.getAllRecipients());
transport.close();