java 发邮件授权码_javamail - androidmail 发送邮件 各种邮件授权方式
當你用到郵箱這方面的功能,可以參考該篇文章。已經在實際應用使用中。
適應qq郵箱(國內大部分郵箱跟qq相似,如163),hotmail(outlook),國外郵箱gmail等配置,已經能通過代碼發送成功
上面3種郵箱都需要開通smtp服務
在實際應用中只弄了發送郵件功能,包含發送附件、圖片等。
源碼
參考
我這個源碼是基于 https://github.com/mailhu/emailkit 上修改 因為沒有對hotmail和gmail的支持,增加這兩個。
而上面這個框架是基于javamail。Jakarta Mail是Jakarta EE API,用於通過SMTP,POP3和IMAP發送和接收電子郵件。Jakarta Mail內置於Java EE平臺中,但還提供了用於Java SE的可選軟件包。javamail官網
開通郵箱授權方式
qq郵箱
步驟1
步驟2
qq郵箱和其他國內郵箱均是通過授權碼方式登錄的。
outlook郵箱
步驟1
步驟2
outlook郵箱跟別的郵箱有點不一樣的就是,只要開通后,就可以通過郵箱和郵箱本身密碼操作郵件。也可以選擇開通授權碼進行授權碼方式登錄。
gmail郵箱
步驟1
步驟2
步驟3,開啟應用訪問權限
步驟4
如果開啟了二次驗證,那么必須用授權碼方式登錄
gmail郵箱開通smtp服務后,還需要開通應用訪問權限才可登錄,當然,也可以選擇2次驗證密碼+授權碼方式登錄。
使用郵箱的一些隱患問題
每種郵箱都有每天發送的上限,可以上網查下每種郵箱的上限。并且也有禁止發送頻率,比如outlook我試過每過2秒發一封,發了大概30封后直接封了我一天。
發送郵件在代碼上處理不當的話會導致郵箱線程阻塞情況。源碼上面我增加了以下代碼
properties.put("mail.smtp.connectiontimeout", 10000); // 連接時間限制,單位毫秒。是關于與郵件服務器建立連接的時間長短的。默認是無限制。
properties.put("mail.smtp.timeout", 10000); // 郵件接收時間限制,單位毫秒。這個是有關郵件接收時間長短。默認是無限制。
properties.put("mail.smtp.writetimeout", 8 * 60 * 1000); // 8分鐘,郵件發送時間限制,單位毫秒。有關發送郵件時內容上傳的時間長短。默認同樣是無限制。
考慮到了可能附件上傳較大,所以用8分鐘的時間限制
總結
以上是生活随笔為你收集整理的java 发邮件授权码_javamail - androidmail 发送邮件 各种邮件授权方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习笔记 | 如何将 MathType
- 下一篇: python 提取出所有学生的序号,姓名