阿里雲服務器安裝Azkaban郵件配置遇的坑

  • 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

驗證發送不再細說,親測有效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章