2016-09-16 14 views
0

件名とメッセージを含むGMAILを使用してメールを送信しようとしています。私はsubjectの実装なしでGMAILを使用して電子メールを送信することに成功し、電子メールを受信することもできました。しかし、私が対象を追加しようとすると、プログラムは単に機能しません。gmailで送信されるメールに件名を追加するにはどうすればよいですか?

import smtplib 
fromx = '[email protected]' 
to = '[email protected]' 
subject = 'subject' #Line that causes trouble 
msg = 'example' 
server = smtplib.SMTP('smtp.gmail.com:587') 
server.starttls() 
server.ehlo() 
server.login('[email protected]', 'password') 
server.sendmail(fromx, to, subject , msg) #'subject'Causes trouble 
server.quit() 

エラーライン:

server.sendmail(fromx, to, subject , msg) #'subject'Causes trouble 
+0

RTFMにインストールしますか? https://docs.python.org/2/library/smtplib.html#smtplib.SMTP.sendmail: '(from_addr、to_addr、msg、mail_options)'。 –

+0

Pythonで退屈なものを自動化するRead https://automatetheboringstuff.com/chapter16/ – danidee

答えて

3

smtplib.SMTP.sendmail()への呼び出しがsubjectパラメータを取りません。呼び出す方法については、the docを参照してください。

他のすべてのヘッダーとともに、件名は、元々フォーマットを定義していた旧式の文書の後に、RFC822形式と呼ばれる形式でメッセージの一部として含まれています。そのように、あなたのメッセージは、その形式に準拠して行います。もちろん

import smtplib 
fromx = '[email protected]' 
to = '[email protected]' 
subject = 'subject' #Line that causes trouble 
msg = 'Subject:{}\n\nexample'.format(subject) 
server = smtplib.SMTP('smtp.gmail.com:587') 
server.starttls() 
server.ehlo() 
server.login('[email protected]', 'xxx') 
server.sendmail(fromx, to, msg) 
server.quit() 

を、すべての適切な基準にメッセージを適合させる簡単な方法はこれのように、Pythonのemail.message標準ライブラリを使用することです:

import smtplib 
from email.mime.text import MIMEText 

fromx = '[email protected]' 
to = '[email protected]' 
msg = MIMEText('example') 
msg['Subject'] = 'subject' 
msg['From'] = fromx 
msg['To'] = to 

server = smtplib.SMTP('smtp.gmail.com:587') 
server.starttls() 
server.ehlo() 
server.login('[email protected]', 'xxx') 
server.sendmail(fromx, to, msg.as_string()) 
server.quit() 

Other examplesもご利用いただけます。

+0

ありがとうRob!素晴らしい説明!十分にあなたに感謝できませんでした! – ThatOnePythonNoob

0

yagmailのようなパッケージを使用してください。免責事項:私は保守主義者です。

import yagmail 
yag = yagmail.SMTP("email.gmail.com", "password") 
yag.send("email1.gmail.com", "subject", "contents") 

pip install yagmail

+0

私は実際にこれを手で試しました。動作していないようでした。 – ThatOnePythonNoob

+0

エラーメッセージが不思議ですか? – PascalVKooten

関連する問題