You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow 2.1.4配置Office365 SMTP无凭证邮件告警问题咨询

无凭证Office365 SMTP Airflow配置方案

本方案适配企业内部Office365通过IP白名单实现无凭证发信的场景,操作步骤如下:


前提验证

先确认Airflow调度器、工作节点的出口IP已经加入公司Office365 SMTP的允许发信IP白名单,这是其他项目可无凭证调用的核心前提。


步骤1:补全配置文件空凭证字段

默认Airflow会强制读取smtp_user和smtp_password配置项,哪怕值为空,补全后可消除对应警告:

[smtp]
smtp_host = <你的Office365 SMTP地址>
smtp_starttls = True
smtp_ssl = False
smtp_port = 25
smtp_mail_from = <发件人邮箱>
smtp_timeout = 30
smtp_retry_limit = 5
# 新增以下两行,留空即可
smtp_user = 
smtp_password = 

步骤2:配置SMTP连接消除弃用警告

Airflow 2.x开始推荐通过连接管理SMTP配置,按以下操作适配无凭证场景:

  • 进入Airflow Web UI → 顶部导航Admin → Connections
  • 找到smtp_default连接,点击编辑
  • 填写对应参数:
    • Host:<你的Office365 SMTP地址>
    • Port:25
    • Login:留空
    • Password:留空
    • Extra字段填入:{"smtp_starttls": true, "smtp_ssl": false}
  • 保存后重启Airflow调度器和Webserver服务即可测试发信

备选方案:自定义邮件后端跳过强制认证

如果上述配置仍发送失败,是因为默认send_email_smtp方法会默认执行SMTP身份验证步骤,无凭证场景不需要该逻辑,可自定义轻量邮件后端:

  1. 在你的Airflow plugins目录下新建custom_email_backend.py,代码如下:
import smtplib
from email.mime.text import MIMEText
from airflow.configuration import conf

def send_email(to, subject, html_content, **kwargs):
    smtp_host = conf.get('smtp', 'smtp_host')
    smtp_port = conf.getint('smtp', 'smtp_port')
    smtp_starttls = conf.getboolean('smtp', 'smtp_starttls')
    smtp_mail_from = conf.get('smtp', 'smtp_mail_from')

    msg = MIMEText(html_content, 'html')
    msg['Subject'] = subject
    msg['From'] = smtp_mail_from
    msg['To'] = ', '.join(to) if isinstance(to, list) else to

    with smtplib.SMTP(smtp_host, smtp_port) as server:
        if smtp_starttls:
            server.starttls()
        # 跳过身份验证步骤,适配无凭证场景
        server.sendmail(smtp_mail_from, to, msg.as_string())
  1. 修改airflow.cfg的[email]段,更换邮件后端:
[email]
email_backend = custom_email_backend.send_email
# 其余email配置保持不变
  1. 重启Airflow相关服务即可生效。

内容的提问来源于stack exchange,提问作者Shark32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:39:02