首页 > 解决方案 > 如何在 Airflow 中通过 http 代理发送 smtp?

问题描述

我正在尝试发送有关 Airflow 失败的电子邮件。Airflow 在离线服务器中,它需要到 smtp 服务器的转发代理,但没有这样的配置。我已经在 中设置了 HTTP_PROXY、HTTPS_PROXY ~/.bashrc,但无法正常工作

# ~/.bashrc

...
proxy=http://hh.hh.hh.hh:pppp
export HTTP_PROXY=$proxy
export HTTPS_PROXY=$proxy
export http_proxy=$proxy
export https_proxy=$proxy
[smtp]

smtp_host = smtp.office365.com
smtp_starttls = True
...
# no such configuration!
# proxy = hh.hh.hh.hh:pppp

在 Airflow 的源代码中,它似乎使用smtplib,所以我尝试了

import smtplib
import socks

proxy_host = 'hh.hh.hh.hh'
proxy_port = pppp

socks.setdefaultproxy(socks.PROXY_TYPE_HTTP, proxy_host, proxy_port)
socks.wrapmodule(smtplib)
# -> airflow webserver get ImportError

我如何在这里设置转发代理?

标签: pythonairflowhttp-proxysmtplib

解决方案


推荐阅读