关于azkaban的邮件提示的相关配置项设置
在定时调度任务当中,当一个任务执行完成之后,设置一个邮件提示:
问题描述:我在azkaban的web的properties文件当中配置了相关的配置项,但是一直报下 面错误:
ERROR [Emailer] [Azkaban] Email message send failed
javax.mail.AuthenticationFailedException: 550 User has no permission
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:823)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:756)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:673)
看到这个的时候,首先想到的是没有权限。然后在网上找个各种资料,最后找到是因为邮箱没有授权,开启smtp的服务
解决方法:
(1)登录自己的163邮箱
(2)在主菜单栏上的“设置”子菜单里面,选择POP3/SMTP/IAMP菜单。
(3)若没有开启“客户端授权密码”,则选择将其开启。开启后,会给你生成一个应用授权密码。要用这个生成的密码作为java mail API发送邮件的认证密码,如此,才能解除500密码,若用邮箱的登录密码去设置这个认证密码,会遇到500的错误。下图是开启“客户端授权密码”功能后的截图:
我的配置文件:
上面这个配置,中的user配置不是地址,是用户名称。还有就这password也不是邮箱的登录密码。是授权码。
如果你配置的地址将会一直报如下错误:
javax.mail.AuthenticatiFailedException: 535 Error: authentication failed 授权失败。
除此之外,你还需要在创建的job文件当中,还要创建一个.properties文件。这样在web界面就能直接加载到你想要发送的邮箱地址。
最后邮件发送成功。(但是还有缺陷,如果哪位知道如下的问题。麻烦告知一下。谢谢!)