我无法使用 python 中的 email.message 在电子邮件正文中添加图片
I'm not able to add an image in email body using email.message in python
import smtplib
import email.message
def sent_email(From,email,passw):
body = f"""
<p>Text blabla </p>
<img src="image_name.jpg" alt="loading problem" width=400 height=560>
"""
msg = email.message.Message()
msg['Subject'] = "subject"
msg['From'] = From
msg['To'] = email
password = passw
msg.add_header('Content-Type', 'text/html')
msg.set_payload(body )
s = smtplib.SMTP('smtp.gmail.com: 587')
s.starttls()
# Login Credentials for sending the mail
s.login(msg['From'], password)
s.sendmail(msg['From'], [msg['To']], msg.as_string().encode('utf-8'))
print('Email sent')
邮件已发送,但没有显示图片。出现“加载问题”消息。
刚刚找到如何附加。我想要它在电子邮件正文中。
为了 link 到电子邮件中的附加图像,您必须使用以“cid:”开头的特殊 URL。在这里查看:
Embedding attached images in HTML emails
这可能就像将图像上传到可公开访问的网络服务器一样简单,并使用它的完整路径,即不是 src="image_name.jpg"
而是 src="https://www.imageserver.com/folder/image_name.jpg"
import smtplib
import email.message
def sent_email(From,email,passw):
body = f"""
<p>Text blabla </p>
<img src="image_name.jpg" alt="loading problem" width=400 height=560>
"""
msg = email.message.Message()
msg['Subject'] = "subject"
msg['From'] = From
msg['To'] = email
password = passw
msg.add_header('Content-Type', 'text/html')
msg.set_payload(body )
s = smtplib.SMTP('smtp.gmail.com: 587')
s.starttls()
# Login Credentials for sending the mail
s.login(msg['From'], password)
s.sendmail(msg['From'], [msg['To']], msg.as_string().encode('utf-8'))
print('Email sent')
邮件已发送,但没有显示图片。出现“加载问题”消息。
刚刚找到如何附加。我想要它在电子邮件正文中。
为了 link 到电子邮件中的附加图像,您必须使用以“cid:”开头的特殊 URL。在这里查看:
Embedding attached images in HTML emails
这可能就像将图像上传到可公开访问的网络服务器一样简单,并使用它的完整路径,即不是 src="image_name.jpg"
而是 src="https://www.imageserver.com/folder/image_name.jpg"