gpt4 book ai didi

python - 使用 Python 从 gmail 发送电子邮件

转载 作者:太空狗 更新时间:2023-10-30 02:35:14 25 4
gpt4 key购买 nike

我正在尝试通过构建对我有用的程序/脚本来自学编程。我正在尝试重组我在网上找到的脚本,以使用 python 脚本 ( Source ) 通过 gmail 发送电子邮件。

此示例有一部分代码用于附加文件,这是我不想要/不需要的。我已经调整了代码,这样我就不必附加任何文件,但是当我这样做时,我会丢失电子邮件的正文。关于如何修改代码以保持电子邮件正文完整的任何帮助/提示?

感谢您的帮助。

最佳答案

您使用的示例代码创建了一个多部分 MIME 消息。一切都是附件,包括邮件正文。如果您只想发送一个普通的旧的单部分纯文本或 HTML 消息,您不需要任何 MIME 东西。它只会增加复杂性。看到示例的 sendmail() 调用中显示 msg.as_string() 的那个位了吗?嗯,这只是将您创建的 MIME 对象转换为文本。如果您开始处理文本,那么您自己指定文本就足够容易了。

下面的函数类似于我在编写的脚本中用于邮寄日志文件的代码。它采用纯文本正文并将其转换为预格式化的 HTML(以便在 Outlook 中更好地工作)。如果您想保留纯文本,只需删除添加 HTML 标记的行,并将 Content-Type header 更改为“text/plain”。

import smtplib

def sendmail(sender, recipient, subject, body, server="localhost"):
"Sends an e-mail to the specified recipient."

body = ("<html><head></head><body><pre>%s</pre></body></html>" %
body.replace("&", "&amp;").replace("<", "&lt;"))

headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)

session = smtplib.SMTP(server)
session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()

关于python - 使用 Python 从 gmail 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852193/

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