gpt4 book ai didi

Python 邮件在 Outlook 主题行中放置不明空间

转载 作者:太空狗 更新时间:2023-10-30 00:50:01 25 4
gpt4 key购买 nike

我编写了一个简单的 Python 脚本,它使用 MIMEMultipart 和 SMTPLib 向一组收件人发送邮件。代码看起来像这样:

import smtplib
import sys

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

sender='foo@bar.com'
recipients='someguy@bar.com'
subject='A pretty long subject line which looks like this'
mail_server='microsfot_exchange_server_ip'
msg = MIMEMultipart('alternative')
body='Body of the Email'
msg['Subject'] = subject
msg['from'] = sender
msg['to'] = ", ".join(recipients)
s = smtplib.SMTP(mail_server)
s.sendmail(sender, recipients, msg.as_string())
s.quit()

这会成功发送邮件,但 Outlook 邮件客户端中的主题如下所示:

 A pretty long subject line which looks       like this

最佳答案

看来你已经点击了Issue #1974 :

长电子邮件标题应该换行。此过程称为“标题折叠”并在 RFC822 中进行了描述。 .然而,RFC822 似乎对标题折叠应该如何发生有点模棱两可。

2.7/3.1 之前版本的 Python 碰巧以一种方式执行此操作,导致您在某些邮件客户端中描述的问题(使用选项卡 \t 作为续行符)。

在错误报告中有一个 workaround建议:将您的主题行设为标题对象,如下所示:

from email.header import Header

# ...

msg['Subject'] = Header(subject)

我刚刚验证了这一点,它确实使用空格而不是制表符作为连续字符,这应该可以解决您的问题。

关于Python 邮件在 Outlook 主题行中放置不明空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25671608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com