kafka-eagle在阿里云上邮件无法发送
今天在阿里云上部署了kafka-eagle作为kafka的监控和管理工具,使用时候发现邮件配置好了但没法使用。
查看日志发现无法连接到邮件服务器的25端口,网上查了一下才知道是阿里为了防止大量的垃圾邮件而禁止了25端口的外发。
到项目的官方github(https://github.com/smartloli/kafka-eagle)上拉了一份代码下来。看了一下邮件相关的代码并没有实现ssl邮件发送。
只能硬着头皮改改代码了(没咋弄过java心虚),最后发现只需要修改一个类就能搞定了。
偷懒直接使用了原来配置文件里面的kafka.eagle.mail.enable作为是否是用ssl的配置
cat kafka-eagle-api\src\main\java\org\smartloli\kafka\eagle\api\email\MailServiceImpl.java
package org.smartloli.kafka.eagle.api.email;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.apache.commons.lang.StringUtils;
import org.smartloli.kafka.eagle.common.protocol.MailSenderInfo;
import org.smartloli.kafka.eagle.common.protocol.SaAuthenticatorInfo;
import org.smartloli.kafka.eagle.common.util.SystemConfigUtils;
import java.security.Security;
import javax.mail.Authenticator;
impo