-
Azkaban發送郵件默認使用的是STMP 25端口,但是阿里雲服務器25端口是被禁用的,所以需要將25端口換到465端口 採用smtps協議傳輸郵件(25端口是非SSl協議傳輸),方法是修改源碼,具體如下:
-
git clone 下載Azkaban源碼到服務器:
[root@boyi_bi azkaban]# git clone https://github.com/azkaban/azkaban.git
-
修改源碼:
進入到修改目錄下: [root@boyi_bi azkaban]# cd azkaban-common/src/main/java/azkaban/utils 找到EmailMessage.java文件,並使用vim編譯器打開進行修改,在import語句添加一行: import java.security.Security; 在sendEmail()方法裏props的配置代碼下加入以下幾行代碼: 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");
重新編譯即可,Azkaban編譯請參照此篇博客
郵件開啓SMTP服務
- 配置第三方客戶端發送郵件,需要開啓SMTP服務,生成相應的授權碼去代替密碼登錄,具體操作如下(以QQ郵箱爲例):
登錄到郵箱客戶端,進入到設置-賬戶-SMTP服務:
記錄最後生成的授權碼,以用授權碼登錄。
修改Azkaban Web配置文件
-
修改web 目錄下azkaban.properties:
[root@boyi_bi azkaban-web-server-3.80.0-7-gabf9ced]# vim conf/azkaban.properties
-
如下配置:
# mail settings [email protected] mail.host=smtp.qq.com # 騰訊qq郵箱的host是:smtp.qq.com 騰訊企業郵箱host是:smtp.exmail.qq.com 126郵箱的host是:smtp.126.com 163郵箱的host是:smtp.163.com [email protected] mail.password=你的授權碼 [email protected] #可添加,可不添加 [email protected] #可添加,可不添加
完成後,啓動Azkaban web 服務即可:
./bin/start-web.sh
驗證發送不再細說,親測有效。