admin管理员组

文章数量:1558994

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