我有以下脚本,旨在发送电子邮件; 然而,电子邮件以纯文本形式发送而非HTML。我是否遗漏了一段代码?
我正在使用在Ubuntu 18.04上的Python 3.9。谢谢大家!
import smtplib, ssl, mimetypes
from email.message import EmailMessage
from email.utils import make_msgid
def send_email():
server = connect_server()
if server:
html = """\
<html>
<body>
<div style="width:60%;background-color:#193048;border:4px solid #3c71aa;padding:5px 10px">
Putting My Email Text Here!
</div>
</body>
</html>
"""
msg = EmailMessage()
msg["Subject"] = "Subject"
msg["From"] = "Support <support@example.xyz>"
msg["To"] = "{} <{}>".format("Test Human","<test.human@somewhere.xyz>")
msg.set_content('Plain Text Here!')
msg_image = make_msgid(domain="example.xyz")
msg.add_alternative(html.format(msg_image=msg_image[1:-1],subtype="html"))
with open("./resources/email-logo.png","rb") as fp:
maintype,subtype = mimetypes.guess_type(fp.name)[0].split('/')
msg.get_payload()[1]add_related(fp.read(),maintype=maintype,subtype=subtype,cid=msg_image)
server.sendmail("Support <support@example.xyz","{} <{}>".format(Test Human,test.human@somewhere.xyz),msg.as_string())
server.quit()
我正在使用在Ubuntu 18.04上的Python 3.9。谢谢大家!
<img src="cid:{msg_image}" />
吗?另外,你的原始代码在msg.get_payload()[1]
和add_related
之间缺少一个.
。 - Niloct