airflow EmailOperator抛出“smtplib.SMTPNotSupportedError:STARTTLS扩展不受服务器支持”?

airflow EmailOperator抛出“smtplib.SMTPNotSupportedError:STARTTLS扩展不受服务器支持”?,airflow,Airflow,尝试使用airflow的EmailOperator根据触发规则发送电子邮件。一次失败,出现错误: [2019-10-14 13:31:50604]{configuration.py:206}警告-在配置中找不到节/键[smtp/smtp_user] 回溯最近一次呼叫上次: 文件/bin/afflow,第27行,in [args.funcargs 文件/usr/lib/python2.7/site-packages/afflow/bin/cli.py,第392行,正在运行 pool=args.po

尝试使用airflow的EmailOperator根据触发规则发送电子邮件。一次失败,出现错误:

[2019-10-14 13:31:50604]{configuration.py:206}警告-在配置中找不到节/键[smtp/smtp_user] 回溯最近一次呼叫上次: 文件/bin/afflow,第27行,in [args.funcargs 文件/usr/lib/python2.7/site-packages/afflow/bin/cli.py,第392行,正在运行 pool=args.pool, 文件/usr/lib/python2.7/site-packages/afflow/utils/db.py,第50行,在包装器中 结果=func*args,**kwargs 文件/usr/lib/python2.7/site-packages/afflow/models.py,第1493行,在原始任务中 结果=任务\复制。executecontext=上下文 文件/usr/lib/python2.7/site-packages/afflow/operators/email_operator.py,第64行,在execute中 发送电子邮件self.to、self.subject、self.html\u内容、files=self.files、cc=self.cc、bcc=self.bcc、mime\u subtype=self.mime\u subtype 文件/usr/lib/python2.7/site-packages/afflow/utils/email.py,第44行,在send_email中 返回backendto,subject,html\u内容,files=files,dryrun=dryrun,cc=cc,bcc=bcc,mime\u subtype=mime\u subtype 文件/usr/lib/python2.7/site-packages/afflow/utils/email.py,第87行,在send\u email\u smtp中 发送\u MIME\u电子邮件SMTP\u邮件\u发件人、收件人、消息、干运行 文件/usr/lib/python2.7/site-packages/afflow/utils/email.py,第109行,在send\u MIME\u email中 s、 starttls starttls中的文件/usr/lib64/python2.7/smtplib.py,第643行 服务器不支持raise SMTPExceptionStartLS扩展。 smtplib.SMTPException:STARTTLS 未更改默认的airflow.cfg(基本密码验证除外),以访问Web服务器和电子邮件部分

[email]
email_backend = airflow.utils.email.send_email_smtp


[smtp]
# If you want airflow to send emails on retries, failure, and you want to use
# the airflow.utils.email.send_email_smtp function, you have to configure an
# smtp server here
smtp_host = localhost
smtp_starttls = True
smtp_ssl = False
# Uncomment and set the user/pass settings if you want to use SMTP AUTH
# smtp_user = airflow
# smtp_password = airflow
smtp_port = 25
smtp_mail_from = airflow@example.com
检查cfg文件中的端口,它似乎已打开并正在侦听

[rvillanueva@mapr001queensetl_气流]$netstat-plnt | grep':25' 并非所有流程都可以识别,非自有流程信息 不会显示,您必须是root才能看到所有内容。 tcp 0 0 127.0.0.1:25 0.0.0.0:*听- TCP60:1:25::*听- …并且我能够将linux sendmail bash命令用于在同一台机器CentOS 7上运行的其他进程


有人知道这里可能发生了什么或任何进一步的调试提示吗?

在获得airflow用户邮件列表和上面显示的错误跟踪的帮助后,解决此问题的方法是将smtp_starttls=False

使用脚本进行测试,如

为实际发送函数导入smtplib 导入smtplib 从email.mime.text导入MIMEText 送你去myaddress@co.org' msg=MIMEText'Hello World' msg['Subject']=“测试邮件” msg['From']='airflow@example.com' msg['To']=发送至 SMTP发送 s=smtplib.SMTP'localhost' s、 starttls尝试注释这一行,看看是否有不同的错误 s、 sendmailme,[send_to],msg.as_字符串 s、 退出 看到了相同的错误,并且能够通过注释掉s.starttls行来消除它

[smtp] 如果您希望在重试、失败时发送电子邮件,并且希望使用 在airflow.utils.email.send_email_smtp功能中,您必须配置 smtp服务器在这里 smtp_host=localhost smtp_starttls=True smtp_starttls=False smtp_ssl=False 如果要使用SMTP身份验证,请取消注释并设置用户/密码设置 smtp_用户=空气流量 smtp_密码=0 smtp_端口=25 smtp_邮件_发件人=airflow@example.com
电子邮件警报似乎工作正常。

在获得airflow用户邮件列表和上面显示的错误跟踪的帮助后,解决此问题的方法是将smtp_starttls设置为False

使用脚本进行测试,如

为实际发送函数导入smtplib 导入smtplib 从email.mime.text导入MIMEText 送你去myaddress@co.org' msg=MIMEText'Hello World' msg['Subject']=“测试邮件” msg['From']='airflow@example.com' msg['To']=发送至 SMTP发送 s=smtplib.SMTP'localhost' s、 starttls尝试注释这一行,看看是否有不同的错误 s、 sendmailme,[send_to],msg.as_字符串 s、 退出 看到了相同的错误,并且能够通过注释掉s.starttls行来消除它

[smtp] 如果您希望在重试、失败时发送电子邮件,并且希望使用 在airflow.utils.email.send_email_smtp功能中,您必须配置 smtp服务器在这里 smtp_host=localhost smtp_starttls=True smtp_starttls=False smtp_ssl=False 如果要使用SMTP身份验证,请取消注释并设置用户/密码设置 smtp_用户=空气流量 smtp_密码=0 smtp_端口=25 smtp_邮件_发件人=airflow@example.com 电子邮件提醒似乎工作正常