用Python创建简单的纯文本电子邮件

用Python创建简单的纯文本电子邮件,python,email,Python,Email,我正在尝试创建一个简单的电子邮件,我想发送到一个smtp服务器 以下是我的工作: from email.message import EmailMessage() message = 'blabla' email = EmailMessage() email['Subject'] = 'bla' email['From'] = 'someone' email['To'] = 'someone else' email.set_payload(message) 问题是,当我打印消息时 print(

我正在尝试创建一个简单的电子邮件,我想发送到一个smtp服务器

以下是我的工作:

from email.message import EmailMessage()
message = 'blabla'
email = EmailMessage()
email['Subject'] = 'bla'
email['From'] = 'someone'
email['To'] = 'someone else'
email.set_payload(message)
问题是,当我打印消息时

print(email.as_string())
print(email.get_payload())
输出不包含原始消息blabla。 它打印头数据,下面是一个空字符串! 为什么呢

我想在smtp服务器上接收邮件,对其进行解析,并将邮件和邮件头分开,就像在本文中所做的那样:

但是如果邮件中没有这条信息,我就不能这么做。 谁能告诉我我做错了什么吗?

试试这个

#!/usr/bin/python3

import smtplib
import email.message
import email.utils


def send_email(send_from, send_to):

    msg = email.message.Message()
    msg['From'] = send_from
    msg['To'] = send_to
    msg['Subject'] = "E-mail Subject"
    msg.add_header('Content-Type', 'text')
    msg.set_payload("This is your message.")

    smtp_obj = smtplib.SMTP("localhost")
    smtp_obj.sendmail(msg['From'], [msg['To']], msg.as_string())
    smtp_obj.quit()

send_email("your@email.com", "to@email.com,")

谢谢你的代码,但它仍然不起作用。msg.as_string打印出消息标题,但在内容应该显示的地方有空行!它让我抓狂。直接在控制台上键入它并打印msg.as的输出_string@aeduG如果答案对您有效,请随时单击箭头接受答案。谢谢您的帮助,我接受了您的答案并单击了箭头。在本例中,email.utils在哪里使用?