Azkaban邮件设置,修复Connecting to SMTP server failed

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值