前言:郵件發送功能是在開發過程中經常用到的,一個代辦信息的產生,通常需要發郵件進行通知。
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();