gpt4 book ai didi

Python smtplib 无法附加多个 mimetext

转载 作者:行者123 更新时间:2023-12-01 00:51:24 24 4
gpt4 key购买 nike

我无法弄清楚为什么我的 python 代码无法在同一封电子邮件中附加 HTML 表格(第 2 部分)和普通句子(第 1 部分)。我尝试注释一行 message.attach(part2) ,反之亦然。 message 对象有问题。

    port = 587 # For starttls
smtp_server = "smtp.gmail.com"
sender_email = "xyz@gmail.com"
receiver_email = ["abc@qwer.com","def@gmail.com"]
password = getpass.getpass()
message = MIMEMultipart("alternative")
message["From"] = sender_email
message["To"] = ", ".join(receiver_email)
message["Subject"] = "Report"

# Create the plain-text and HTML version of your message
pd.read_csv('tmp.csv').to_html('report_html.html')
html=open('report_html.html').read()

part1=MIMEText("Following are the instances currently running:\n","plain")
part2=MIMEText(html,"html")
message.attach(part1)
message.attach(part2)

context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email,password)
server.sendmail(sender_email, receiver_email,
message.as_string())

下面给出了我对第 1 部分和第 2 部分输出的单独尝试:

blah

blahblah

最佳答案

您使用了错误类型的multipart 容器。 multipart/alternative 容器告诉接收客户端“这里有相同内容的多种变体;显示适合用户偏好和您的技术能力的一种。”但你想说“这里有几个部分;以一种或另一种方式显示所有这些部分。”合适的内容类型是 multipart/mixed 或可能是 multipart/lated

关于Python smtplib 无法附加多个 mimetext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546149/

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