java发送邮件时遇到的坑
来源:互联网 发布:知乎新房床选购 编辑:程序博客网 时间:2024/06/05 19:08
之前用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成功连接:
参考:http://blog.csdn.net/mchdba/article/details/49339715
但是尽管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端口都连接不上,于是去掉这段代码后,启动项目再次发送邮件便成功了。
0 0
- java发送邮件时遇到的坑
- java发送邮件遇到的各种问题
- Spring发送邮件时遇到的错误
- Spring发送邮件时遇到的错误
- java写email邮件发送的时候遇到的问题
- java 邮件发送 --- 简单的邮件发送
- java邮件的发送
- JavaMail发送邮件权限认证遇到的坑
- 使用SQL Server发送邮件时遇到的诡异事件
- log4j遇到error时将发送邮件出来的配置
- 使用Spring 发送邮件时遇到的问题
- 关于Javaemail发送邮件时遇到的问题
- 发送邮件中遇到的问题
- mail发送邮件遇到的sb错误
- 发送邮件遇到的问题以及解决办法
- javax.mail发送邮件遇到的问题
- java发送邮件的源代码
- JAVA发送邮件的程序
- 添加tomcat到eclipse上去
- Socket
- 【Python自动化运维】DNS轮询技术
- oracle 时间戳生成语句(秒级+毫秒级)
- Plumoi 2016年星座运势-健康港
- java发送邮件时遇到的坑
- Cookie跨域setDomain和setPath
- 迁移报告 - protobuf(错误都在这里找)
- 面试
- 通过PreparedStatement 对数据库进行增删改查
- IOS Dev Intro - NSImage CIImage CGImage
- nginx和php文件大小限制修改
- hadoop中使用MapReduce编程实例
- MySQL的left join中on与where的区别