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

使用Office 365与Flask-Mail发邮件遇winmail.dat问题,求HTML格式配置

嘿,这个问题我之前帮人排查过,winmail.dat本质是Outlook生成的TNEF(传输中性封装格式)文件,一般是因为邮件被当成了富文本格式发送导致的。要改成HTML格式正常发送,你得从Flask-Mail的配置和发送代码两方面调整,具体步骤如下:

一、调整Flask-Mail的核心配置

首先得确保你的邮件配置明确指定了正确的内容类型,同时禁用可能触发TNEF的设置:

  • 强制设置邮件默认内容类型为HTML:在Flask配置里添加MAIL_DEFAULT_SENDER(Office365要求必须验证发件人,这个是必填项),然后设置MAIL_CONTENT_TYPE = 'html',这样默认发送的邮件就是HTML格式。
  • 配置Office365的SMTP参数,一定要准确:
    app.config['MAIL_SERVER'] = 'smtp.office365.com'
    app.config['MAIL_PORT'] = 587
    app.config['MAIL_USE_TLS'] = True
    app.config['MAIL_USE_SSL'] = False
    app.config['MAIL_USERNAME'] = '你的Office365邮箱地址'
    app.config['MAIL_PASSWORD'] = '你的邮箱密码或应用专用密码'
    app.config['MAIL_DEFAULT_SENDER'] = ('自定义显示名称', '你的Office365邮箱地址')
    app.config['MAIL_CONTENT_TYPE'] = 'html'
    
    划重点:如果你的Office365开启了多因素认证(MFA),一定要用应用专用密码,不能用普通的登录密码,否则会认证失败。
二、修改邮件发送代码,明确指定HTML内容

就算配置了默认类型,发送时也得明确指定HTML内容,避免Flask-Mail自动 fallback到纯文本或富文本:

  • 使用msg.html属性来设置HTML内容,同时可以搭配msg.body设置纯文本降级内容(兼容不支持HTML的邮件客户端,可选但建议加上):
    from flask import Flask
    from flask_mail import Mail, Message
    
    app = Flask(__name__)
    # 把上面的配置代码放在这里
    
    mail = Mail(app)
    
    def send_html_email():
        # 创建邮件对象
        msg = Message(
            'HTML格式邮件测试',
            recipients=['收件人邮箱@example.com']
        )
        # 纯文本降级内容(当收件人客户端不支持HTML时显示)
        msg.body = '如果看不到HTML内容,请切换到支持HTML的邮件客户端查看'
        # 核心HTML内容,支持所有HTML标签
        msg.html = '''
        <h1>这是HTML邮件的标题</h1>
        <p>这里是邮件正文,支持<b>加粗</b>、<i>斜体</i>、<a href="#">链接</a>等格式</p>
        <img src="https://example.com/your-image.jpg" alt="示例图片">
        '''
        # 发送邮件
        mail.send(msg)
    
  • 另外,添加附件时尽量用通用格式(比如PDF、JPG等),避免使用Outlook专属的文件类型,防止触发TNEF封装。
三、额外排查点(如果还是出现winmail.dat)

要是配置和代码都改了还是有问题,可能是Office365端的设置在搞鬼:

  • 登录你的Office365邮箱,进入设置页面,找到「邮件」→「撰写和回复」,确保默认发送格式设置为「HTML」,而不是「富文本」或「纯文本」。
  • 检查是否有自动邮件规则强制转换了发送格式,比如某些规则会把 outgoing邮件改成富文本,把这类规则暂时禁用试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:30:29