Office365 我用的是办公室和邮件

Office365 我用的是办公室和邮件,office365,flask-mail,Office365,Flask Mail,我正在使用office 365和Flask mail向用户发送电子邮件,但收到的格式是winmail.dat。是否需要任何配置以html格式发送电子邮件。谢谢对我来说,这个问题的答案很有效: 长话短说:电子邮件的邮件ID对于office 365来说太长(超过78个字符)。消息ID是自动创建的。长度取决于应用程序运行的位置。在我的例子中,在本地它足够短,但是在aws ec2实例上它太长了 解决方案:缩短消息ID 下面是一个粗略的代码: from flask import Flask from fl

我正在使用office 365和Flask mail向用户发送电子邮件,但收到的格式是winmail.dat。是否需要任何配置以html格式发送电子邮件。谢谢

对我来说,这个问题的答案很有效:

长话短说:电子邮件的邮件ID对于office 365来说太长(超过78个字符)。消息ID是自动创建的。长度取决于应用程序运行的位置。在我的例子中,在本地它足够短,但是在aws ec2实例上它太长了

解决方案:缩短消息ID

下面是一个粗略的代码:

from flask import Flask
from flask_mail import Mail, Message
import os

# instantiate flask app
app = Flask(__name__)

# set configuration and instantiate mail
mail_settings = {
    "MAIL_SERVER": 'smtp.office365.com',
    "MAIL_PORT": 587,
    "MAIL_USE_TLS": True,
    "MAIL_USE_SSL": False,
    "MAIL_USERNAME": os.environ['EMAIL_USER'],
    "MAIL_PASSWORD": os.environ['EMAIL_PASSWORD']
}
app.config.update(mail_settings)
mail = Mail(app)

# create message
msg = Message(subject=...,
              sender=...,
              recipients=...,
              body=...)

# change message ID
msg.msgId = msg.msgId.split('@')[0] + '@short_string'  # for instance your domain name

# send email
mail.send(msg)
使用
dir(msg)
可以找到属性
msgId
。您可以使用
print(msg.msgId)
查看它,例如返回
。您可以使用
len(msg.msgId)
检查长度


更改邮件ID时,请添加一些逻辑以确保长度不超过限制。

Winmail.dat来自exchange服务器,该服务器只希望与outlook对话:(可能的副本)