關於javamail 呼叫 office 365 發郵件的個人見解
阿新 • • 發佈:2019-02-19
程式碼百度的話一大堆,基本上都是千篇一律
然而以執行基本上都是報這個錯 Authentication unsuccessful 身份驗證失敗
網上有很多人說什麼驗證的使用者名稱不能用賬號名稱,要用郵箱,
也有的人說要使用者名稱前面要加上域名
以上我都試過,還是報身份驗證失敗的錯誤
還有的人說是因為java版本的問題,jdk1.6可以,1.7就不行
但是我用的是1.8版本,那我是要絕望??
不!雖然網上的大部分部落格的內容都是差不多,但還是有一篇部落格的內容啟發了我
雖然他的程式碼只有幾行,但足以說明問題
Properties prop = new Properties();
// 開啟debug除錯,以便在控制檯檢視
prop.setProperty("mail.debug", "true");
// 設定郵件伺服器主機名
prop.setProperty("mail.host", smtpHost);
// 傳送伺服器需要身份驗證
prop.setProperty("mail.smtp.auth", "true");
// 傳送郵件協議名稱
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.port", "587");
prop.put("mail.smtp.starttls.enable",
"true" );
在他的程式碼裡,我發現,它是有設定埠號的
網上找到的基本是沒有設的,我抱著試一試的心態去新增設定埠到我的程式碼裡面
最後終於沒報錯,真的是不容易
感謝這位大佬的部落格
https://my.oschina.net/u/2348824/blog/792113