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