2016-11-03 14 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()) 

出力は、元のメッセージ(blabla)を含まない、です。 ヘッダデータとその下の空の文字列を表示します! なぜですか?

私は、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

nevermind私はそれを働かせました – aeduG

+0

ありがとうございました – aeduG

関連する問題