1. 首先是dto層的Mail類
public class Mail implements Serializable {
/**
* 序列號
*/
private static final long serialVersionUID = -3562218214168975242L;
/**
* 郵件編碼
*/
public static final String ENCODEING = "UTF-8";
/**
* 服務器地址
*/
private String host;
/**
* 服務器端口號
*/
private String portNumber;
/**
* 發件人的郵箱
*/
private String sender;
/**
* 收件人的郵箱
*/
private String receiver;
/**
* 發件人昵稱
*/
private String name;
/**
* 賬號
*/
private String username;
/**
* 密碼
*/
private String password;
/**
* 主題
*/
private String subject;
/**
* 信息(支持HTML)
*/
private String message;
}
記得生成getter和setter方法
2. 其次是MailUtil工具類
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class MailUtil {
public boolean send(Mail mail) {
//發送email對象
HtmlEmail email = new HtmlEmail();
try {
//這里是SMTP發送服務器的名字
email.setHostName(mail.getHost());
//端口號不為空時,用戶自定義的端口號為SMTP發送服務器端口號
if (!"".equals(mail.getPortNumber())) {
email.setSSLOnConnect(true);
email.setSslSmtpPort(mail.getPortNumber());
}
//字符編碼集的設置
email.setCharset(Mail.ENCODEING);
//收件人的郵箱
email.addTo(mail.getReceiver());
//發送人的郵箱
email.setFrom(mail.getSender(), mail.getName());
// 如果需要認證信息的話,設置認證:用戶名-密碼。分別為發件人在郵件服務器上的注冊名稱和密碼
email.setAuthentication(mail.getUsername(), mail.getPassword());
// 要發送的郵件主題
email.setSubject(mail.getSubject());
// 要發送的信息,由於使用了HtmlEmail,可以在郵件內容中使用HTML標簽
email.setMsg(mail.getMessage());
// 發送
email.send();
return true;
} catch (EmailException e) {
e.printStackTrace();
return false;
}
}
這個類里最上面兩行導入的包需要commons-email.jar的jar包 另外寫這個功能還需要mail.jar的jar包 本人用maven創建的項目就直接到依賴包網站直接導入這兩個jar包了 3.調用工具類發郵件
public void test() {
Mail mail = new Mail();
mail.setHost("smtp.qq.com"); //設置郵件服務器,如果不用QQ郵箱的,自己找找看相關的
mail.setPortNumber("465"); //設置郵件服務器端口號,默認25
mail.setSender("發送人的郵箱,這里用qq"); //發送人
mail.setName("xx公司"); //發送人昵稱
mail.setReceiver("接收人的郵箱,可以隨便寫"); //接收人
mail.setUsername("登陸賬號"); //登錄賬號,一般都是和郵箱名一樣
mail.setPassword("qq郵箱授權碼"); //QQ郵箱登錄第三方客戶端時,密碼框請輸入“授權碼”進行驗證。其他的密碼具體查看郵件服務器的說明
//發送郵件
// 這里可以寫一些郵件內容或者計算功能
//定義郵件標題
String title = "標題 "
mail.setSubject(title);
//定義郵件內容
StringBuilder emailContent = new StringBuilder();
//以下隨便改
emailContent.append("內容<br/>");
emailContent.append("...........");
mail.setMessage(String.valueOf(emailContent));
if (new MailUtil().send(mail)) {
System.out.println("發送成功");
} else {
System.out.println("發送失敗");
}
}
這樣子,郵件發送功能就完成了!
可喜可賀,可喜可賀