2016-11-03 93 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

相關問題