1. 程式人生 > >關於javamail 呼叫 office 365 發郵件的個人見解

關於javamail 呼叫 office 365 發郵件的個人見解

程式碼百度的話一大堆,基本上都是千篇一律

然而以執行基本上都是報這個錯 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