使用到的包: javax.mail-1.5.1.jar
- 發郵件的時候
- 向運維: 維護服務器linux
- 索要:
- smtp服務器地址, smtp.163.com
- 發送郵件的端口號: 默認25
- 發件人的賬號和密碼
郵件發送封裝庫代碼
import java.util.Properties;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendJEmail {
/*
* 拷貝代碼直接將下面四個屬性改成自己的就可以了
* */
static final String smtphost = "smtp.163.com"; // 發送郵件的服務商
static final String from = ""; // 郵件發送人的郵件地址
static final String username = ""; //發件人的郵件帳戶
static final String password = ""; //發件人的郵件密碼
public static boolean sendMail(String email, String emailMsg) {
String to = email; // 郵件接收人的郵件地址
//定義Properties對象,設置環境信息
Properties props = System.getProperties();
//設置郵件服務器的地址
props.setProperty("mail.smtp.host", smtphost); // 指定的smtp服務器
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");//設置發送郵件使用的協議
//創建Session對象,session對象表示整個郵件的環境信息
Session session = Session.getInstance(props);
//設置輸出調試信息
session.setDebug(true);
try {
//Message的實例對象表示一封電子郵件
MimeMessage message = new MimeMessage(session);
//設置發件人的地址
message.setFrom(new InternetAddress(from));
//設置主題
message.setSubject("用戶激活");
//設置郵件的文本內容
//message.setText("Welcome to JavaMail World!");
message.setContent((emailMsg),"text/html;charset=utf-8");
//設置附件
//message.setDataHandler(dh);
//從session的環境中獲取發送郵件的對象
Transport transport=session.getTransport();
//連接郵件服務器
transport.connect(smtphost,25, username, password);
//設置收件人地址,併發送消息
transport.sendMessage(message,new Address[]{new InternetAddress(to)});
transport.close();
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
}
以上代碼實現後, 直接在service層, 在註冊成功之後,調用發送郵件認證類
String link = "http://localhost:8080/BookStore1_war_exploded/active?activeCode=" + user.getActiveCode();
String html = "<a href="+ link +">這裏填寫激活賬號的提示語句</a>";
SendJEmail.sendMail(user.getEmail(), html);