GMAILを使用して件名とメッセージを記載したメールを送信しようとしています。を実装せずにGMAILを使用してメールを送信することに成功し、メールを受信することsubject
もできました。ただし、件名を追加しようとすると、プログラムが機能しません。
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
の呼び出しsmtplib.SMTP.sendmail()
はsubject
パラメータを取りません。呼び出す方法については、ドキュメントを参照してください。
件名は、他のすべてのヘッダーとともに、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()
もちろん、メッセージをすべての適切な標準に準拠させる簡単な方法はemail.message
、次のようにPython標準ライブラリを使用することです。
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()
他の例も利用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加