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

aed*_*duG 0 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)
Run Code Online (Sandbox Code Playgroud)

问题是,当我打印消息时,

print(email.as_string())
print(email.get_payload())
Run Code Online (Sandbox Code Playgroud)

输出不包含原始消息 (blabla)。它打印标题数据,并在其下方打印一个空字符串!这是为什么?

我想在 smtp 服务器上接收一条消息,解析它并将消息和标题分开,就像在这篇文章中所做的那样:

如何使用 python 获取电子邮件的文本内容?

但是,如果该消息甚至不在电子邮件中,我就无法这样做。有人能告诉我我做错了什么吗?

r0x*_*tte 7

尝试这个

#!/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,")
Run Code Online (Sandbox Code Playgroud)

  • 此示例中哪里使用了“email.utils”? (2认同)