2016-11-03 61 views
0

我想创建一个简单的电子邮件,我想发送到一个smtp服务器。在Python中创建简单的纯文本电子邮件

这里是我做的:

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()) 

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

我想,因为它是在这个岗位做接收消息的SMTP服务器上,分析它,并分开消息和头:如果消息甚至没有

How can I get an email message's text content using python?

但在电子邮件中,我不能那样做。 有人能告诉我我做错了什么吗?

回答

1

试试这个

#!/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("[email protected]", "[email protected],") 
+0

谢谢你的代码,但它仍然没有工作。 msg.as_string()打印出邮件标题,但在内容应该是空行的地方!它让我疯狂。 – aeduG

+0

没关系我把它工作了 – aeduG

+0

非常感谢你 – aeduG

相关问题