国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java實現發送郵件功能時碰到的坑

2019-11-26 14:11:19
字體:
來源:轉載
供稿:網友

之前用163郵箱發郵件時明明是成功的,但是使用中國移動自己的郵箱時,無論如何在linux服務器中都發送不成功,一開始報如下錯誤:

javax.mail.MessagingException: Unknown SMTP host: mail.chinamobilesz.com at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1959) ~ [mail-1.4.7.jar:1.4.7] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:65 4) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Service.connect(Service.java:317) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Service.connect(Service.java:176) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Service.connect(Service.java:125) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Transport.send0(Transport.java:194) ~[mail-1.4.7.jar:1.4.7 ] at javax.mail.Transport.send(Transport.java:124) ~[mail-1.4.7.jar:1.4.7] at com.cmsz.processOm.service.impl.EmailSendServiceImpl.sendEmail(EmailS endServiceImpl.java:107) ~[EmailSendServiceImpl.class:na] at com.cmsz.processOm.controller.WorkOrderController$SendEmail.isSendEma il(WorkOrderController.java:555) [WorkOrderController$SendEmail.class:na] at com.cmsz.processOm.controller.WorkOrderController$SendEmail.run(WorkO rderController.java:524) [WorkOrderController$SendEmail.class:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0.11] ...... 

在linux中telnet mail.chinamobilesz.com 25也不通,但是直接把mail.chinamobilesz.com換成ip就可以了,在網上查找資料并參考其他文章后,設置了主機名和ip的映射后終于telnet成功連接:

但是盡管telnet成功連接了,啟動項目后發送郵件依然報錯,只不過換了一個錯誤而已:

javax.mail.MessagingException: Could not connect to SMTP host: mail.chinamobilesz.com, port: 25 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961) ~[mail-1.4.7.jar:1.4.7] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Service.connect(Service.java:317) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Service.connect(Service.java:176) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Service.connect(Service.java:125) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Transport.send0(Transport.java:194) ~[mail-1.4.7.jar:1.4.7] at javax.mail.Transport.send(Transport.java:124) ~[mail-1.4.7.jar:1.4.7] at com.cmsz.processOm.service.impl.EmailSendServiceImpl.sendEmail(EmailSendServiceImpl.java:107) ~[EmailSendServiceImpl.class:na] at com.cmsz.processOm.controller.WorkOrderController$SendEmail.isSendEmail(WorkOrderController.java:555) [WorkOrderController$SendEmail.class:na] at com.cmsz.processOm.controller.WorkOrderController$SendEmail.run(WorkOrderController.java:524) [WorkOrderController$SendEmail.class:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0.11] ...... 

查找很多資料還是沒能解決問題,不明白明明可以telnet的,為什么到了程序中就連接不上。如此折騰了好久,最終由組長出馬解決了問題,我也才終于知道了原因。竟然是項目中如下代碼導致:

// SSL加密 MailSSLSocketFactory sf = null; try { sf = new MailSSLSocketFactory(); // 設置信任所有的主機 sf.setTrustAllHosts(true); proerties.put("mail.smtp.ssl.enable", "true"); proerties.put("mail.smtp.ssl.socketFactory", sf); } catch (GeneralSecurityException e) { e.printStackTrace(); } 

使用了這一段代碼后,連接的是465端口,不是25,但是實際上移動提供給我的郵箱沒有開465這個端口,因此便造成不論是465還是25端口都連接不上,于是去掉這段代碼后,啟動項目再次發送郵件便成功了。

以上所述是小編給大家介紹的Java實現發送郵件功能時碰到的坑的全部敘述,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 修文县| 东源县| 杭锦旗| 克山县| 鹤壁市| 四子王旗| 旬邑县| 绥阳县| 永靖县| 泰来县| 宜兰市| 蛟河市| 仪征市| 辽源市| 南部县| 云霄县| 甘孜县| 岐山县| 南城县| 资兴市| 沈阳市| 关岭| 沭阳县| 蒙城县| 乡城县| 布拖县| 保山市| 秭归县| 阿图什市| 清新县| 宜阳县| 电白县| 宣汉县| 漳平市| 庆安县| 囊谦县| 临汾市| 灵璧县| 新绛县| 九台市| 山阳县|