首页 > 解决方案 > 电子邮件标题中的顺序重要吗?

问题描述

我正在使用 smtplib 创建一个 MIMEMultipart 电子邮件,结果是一个如下所示的标题。

MIME-Version: 1.0
Content-Type: multipart/alternative; charset="utf-8"; boundary="===============2613033831060434871=="
Content-Transfer-Encoding: base64
Subject: Your report is ready
From: no-reply@example.com
To: someone@example.com

这是一个有效的电子邮件标题吗?除了一个人在显示电子邮件正文之前遇到他们的电子邮件被切断之外,没有遇到任何投诉。他们声称这是因为 Content-Type 出现在错误的位置。

这就是消息的创建方式

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from cl.library.htmlutils import html_to_text

def make_multipart_email(from_addr, to_addr, html, subject=None, text=None):
    text = text or html_to_text(html)
    msg = MIMEMultipart('alternative')
    msg.set_charset('utf8')
    msg['Subject'] = subject
    msg['From'] = from_addr
    msg['To'] = to_addr

    msg.attach(MIMEText(text, 'plain', 'UTF-8'))
    msg.attach(MIMEText(html, 'html', 'UTF-8'))

    return msg

标签: pythonpython-2.7emailrfc5322

解决方案


根据RFC 5322

...标题字段不保证按特定顺序排列。

所以你的电子邮件是有效的。


推荐阅读