Azkaban邮件设置
解决 [Azkaban] Connecting to SMTP server failed,javax.mail.MessagingException: Exception reading response; java.net.SocketTimeoutException: Read timed out
本实例版本:azkaban-3.90.0
一、邮件配置
vim azkaban-web-server/conf/azkaban.properties
mail.sender=******@qq.com
mail.host=smtp.exmail.qq.com
mail.user=******@qq.com
mail.password=***********
mail.port=465
可是当你配置这些之后,发送邮件还是会报错,报错如下:
2021/02/01 16:35:51.861 +0800 ERROR [EmailMessage] [ExecutorManagerUpdaterThread] [Azkaban] Connecting to SMTP server failed, attempt: 2
javax.mail.MessagingException: Exception reading response;
nested exception is:
java.net.SocketTimeoutException: Read timed out
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2210)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
at javax.mail.Service.connect(Service.java:295)
at azkaban.utils.JavaxMailSender.connect(JavaxMailSender.java:34)
at azkaban.utils.EmailMessage.connectToSMTPServer(EmailMessage.java:220)
at azkaban.utils.EmailMessage.retryConnectToSMTPServer(EmailMessage.java:230)
at azkaban.utils.EmailMessage.sendEmail(EmailMessage.java:213)
at azkaban.utils.Emailer.sendEmail(Emailer.java:242)
at azkaban.utils.Emailer.alertOnError(Emailer.java:144)
at azkaban.executor.ExecutionControllerUtils.alertUserOnFlowFinished(ExecutionControllerUtils.java:118)
at azkaban.executor.ExecutionFinalizer.finalizeFlow(ExecutionFinalizer.java:97)
at azkaban.executor.RunningExecutionsUpdater.updateExecutions(RunningExecutionsUpdater.java:130)
at azkaban.executor.RunningExecutionsUpdaterThread.run(RunningExecutionsUpdaterThread.java:54)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:89)
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:2188)
... 13 more
二、修改源码
vim azkaban-common/src/main/java/azkaban/utils/EmailMessage.java
文章开头添加
import java.security.Security;
再sendEmail方法,第174行后面添加
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", "465");
添加效果如下图
三、退出到安装根目录重新编译
./gradlew build installDist -x test
编译完成后可以将编译好的 azkaban-web-server-0.1.0-SNAPSHOT.tar.gz 解压
tar xf azkaban-web-server-0.1.0-SNAPSHOT.tar.gz && cd azkaban-web-server-0.1.0-SNAPSHOT/lib/
拷贝 azkaban-common-0.1.0-SNAPSHOT.jar 到对应正在使用的lib文件夹下,替换
四、重启azkaban-web
./bin/shutdown-web.sh
./bin/start-web.sh
问题解决
可以下载我编译好的
https://download.csdn.net/download/tony_wzx/14987807