一般發送郵件的話系統項目中可能會用到,像一些通知信息自動發送等,會用到發送郵件的情況,發送郵件有好多種,包括設置各種格式,添加圖片附件等,當然今天我們先看一下怎么實現發送成功。
工欲善其事必先利其器,開始之前,一定要引入依賴 ,不然程序會報錯

引入pom.xml文件
<!--發送郵件引入jar包-->
<dependency >
<groupId >javax.mail </groupId >
<artifactId >mail </artifactId >
<version >1.4.6 </version >
</dependency >
<dependency >
<groupId >com.sun.mail </groupId >
<artifactId >javax.mail </artifactId >
<version >1.5.5 </version >
</dependency >
引入依賴之后,我們就可以寫發送郵件的測試類了
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
/**
* @author pillar
* @date 2019-05-10
*/
public class testMail {
public static void main(String[] args) {
String msg="testMail: hello word";
testMail.sendMailMessage(msg);
}
/**
* 發送郵件實現類
* @param msg
*/
public static void sendMailMessage(String msg) {
try {
//郵箱服務器地址如:mail.qq.com
String hostName ="139.159.XXX";
// 帳號與密碼
String userName ="用戶名";
String password = "密碼";
// 發件人
String fromAddress ="用戶名@XXX.com";
// 發件人姓名
String fromName = "pillarzhang";
HtmlEmail email=new HtmlEmail();
email.setHostName(hostName);// 設置smtp服務器
email.setAuthentication(userName, password);// 設置授權信息
email.setCharset("utf-8");
email.setFrom(fromAddress, fromName, "utf-8");// 設置發件人信息
email.setSubject("testMail");// 設置主題
email.setHtmlMsg(msg);// 設置郵件內容
email.addTo("1208699589@qq.com", "pillarzhang", "utf-8");
System.err.println(email.getSmtpPort());
System.err.println(email.getHostName());
String res = email.send();// 發送郵件
System.err.println(res);
} catch (EmailException e) {
System.err.println("郵件發送失敗");
e.printStackTrace();
}
}
}
如果要用qq,163等其他郵箱做服務器測試注意25端口和授權碼的設置 否則可能會提示發送失敗哦

這里我用的是我本地郵箱服務器地址,啟動測試執行之后,qq郵箱就會收到郵件了!

郵件可以正常發送郵件了,當然如有不當之處請多多指正,一起交流學習進步!
