这是因为 EmailOperator 在发送电子邮件时使用了 SMTP 协议,但由于某种原因无法连接到 SMTP 服务器。可以尝试以下
确保 SMTP 服务器的主机名和端口号是正确的。
检查网络连接是否正常。使用 telnet 命令测试是否可以连接到 SMTP 服务器。例如:telnet smtp.gmail.com 587
确保 SMTP 服务器允许代理连接。需要在“Extra”字段中添加代理信息。例如:
EmailOperator( task_id='send_email', to='to@example.com', subject='Test email', html_content='
This is a test email
', params={'my_param': 'Parameter I passed in'}, extra={ 'smtp_proxy_host': 'your_proxy_host', 'smtp_proxy_port': your_proxy_port} )尝试更改 SMTP 端口号。有时将端口号更改为 465 或 25 可以解决此问题。
如果使用的是 Google SMTP 服务器,请尝试在账户设置中启用“安全性较低的应用程序访问”选项。这可以允许非 Google 应用程序连接到 Google SMTP。
如果使用的是 AWS SES,请确保 IAM 账户有SES 权限。
参考代码:
EmailOperator( task_id='send_email', to='to@example.com', subject='Test email', html_content='
This is a test email
', params={'my_param': 'Parameter I passed in'}, extra={ 'smtp_host': 'smtp.gmail.com', 'smtp_mail_from': 'your_email_address@gmail.com', 'smtp_port': 587, 'smtp_login': 'your_email_address@gmail.com', 'smtp_password': 'your_password', 'smtp_starttls': True } )