admin管理员组文章数量:1559389
1、问题:azkaban配置好腾讯的企业邮箱作为邮件发送者,但是zakaban的web后台直接报错误,连接超时:
javax.mail.MessagingException: Exception reading response;
13051- nested exception is:
13052- java.SocketTimeoutException: Read timed out
13053: at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2210)
13054: at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
13055: at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
13056- at javax.mail.Service.connect(Service.java:295)
13057- at azkaban.utils.JavaxMailSender.connect(JavaxMailSender.java:34)
13058- at azkaban.utils.EmailMessage.connectToSMTPServer(EmailMessage.java:220)
13059- at azkaban.utils.EmailMessage.retryConnectToSMTPServer(EmailMessage.java:230)
13060- at azkaban.utils.EmailMessage.sendEmail(EmailMessage.java:213)
13061- at azkaban.utils.Emailer.sendEmail(Emailer.java:242)
因为腾讯的企业邮箱是用smtps协议,也就是ssl , 端口是465
2、查看源码:
azkaban mail.smtp.starttls.enable 只支持tls认证。
3、 需要在以下文件加入代码
azkaban-common/src/main/java/azkaban/utils/EmailMessage.java中
在sendEmail()方法里props的配置代码下加入以下几行代码:
import
java.security.Security;
Security.addProvider(new com.sun.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.ssl.SSLSocketFactory";
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", "465");
效果如下图:
重新编译,部署即可用腾讯企业邮箱正常发邮件了。
我已经修改后的代码打包了,大家可以直接下载:
https://download.csdn/download/zsd_31/12619570
版权声明:本文标题:解决azkaban使用腾讯企业邮箱发邮件失败问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727422409a1113730.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论