gpt4 book ai didi

python - 为什么 Python 的标准库对发送电子邮件的支持很弱

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:56 26 4
gpt4 key购买 nike

<分区>

Python 被宣传为“自带电池”的语言。所以,我想知道为什么它的标准库不包含对电子邮件的高级支持:

我发现您需要了解很多 MIME 知识才能创建与您在典型电子邮件客户端中实现的功能相当的电子邮件消息,例如处理 HTML 内容、嵌入图像和文件附件。

要实现这一点,您需要执行 low level assembly of the message ,例如:

  • 处理MIMEMultipart部分,了解相关替代
  • 了解文件编码,例如 base64

如果您对 MIME 的了解还不足以编写这样一封电子邮件,则很容易陷入错误的部分嵌套等陷阱,并创建一些电子邮件客户端可能无法正确查看的消息。

我不需要了解 MIME 就能正确发送电子邮件。高级库支持应该encapsulate all this MIME logic , 允许你写这样的东西:

m = Email("mailserver.mydomain.com")
m.setFrom("Test User <test@mydomain.com>")
m.addRecipient("you@yourdomain.com")
m.setSubject("Hello there!")
m.setHtmlBody("The following should be <b>bold</b>")
m.addAttachment("/home/user/image.png")
m.send()

非标准库解决方案是 pyzmail :

import pyzmail
sender=(u'Me', 'me@foo.com')
recipients=[(u'Him', 'him@bar.com'), 'just@me.com']
subject=u'the subject'
text_content=u'Bonjour aux Fran\xe7ais'
prefered_encoding='iso-8859-1'
text_encoding='iso-8859-1'
pyzmail.compose_mail(
sender, recipients,
subject, prefered_encoding, (text_content, text_encoding),
html=None,
attachments=[('attached content', 'text', 'plain', 'text.txt',
'us-ascii')])

有什么理由不在“包含电池”标准库中吗?

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