Python でメールを送信する
Najwa Riyaz
2022年4月14日
Python を使用してメールを送信するには、smtplib
ライブラリの次の関数を使用します。
SMTP(SMTP_SERVER, SMTP_PORT)
- SMTP サーバーと SMTP ポートの詳細に従って SMTP セッションを作成します。starttls()
- セキュリティ設定の TLS を開始します。login(SMTP_USERNAME, SMTP_PASSWORD)
- 電子メール送信者の認証の詳細を提供します。sendmail(EMAIL_FROM, EMAIL_TO, the_message)
- 送信者から受信者にメッセージを送信します。quit()
は SMTP セッションを終了します。
これは、GmailSMTP サーバーを介したメールの送信を示す例です。
import smtplib
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"
s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = "Subject: {}\n\n{}".format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()
システムのその時点で構築された接続に従って、出力は次のようになります-
(221, b"2.0.0 closing connection t12sm4676768pfc.133 - gsmtp")
その結果、メールが送信されます。受信者はメッセージを正常に受信します。
注意:
- Gmail の場合、次の SMTP の詳細を入力します。
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
また、コードを実行する前に、Gmail で次の設定を有効にする必要があります。
https://myaccount.google.com/lesssecureapps
- Yahoo メールの場合、次の SMTP の詳細を入力します。
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587
また、コードを実行する前に、Yahoo のアプリパスワード
を生成します。以下のリンクを確認してください。
https://help.yahoo.com/kb/generate-separate-password-sln15241.html
- 同様に、他のメールプロバイダーを使用する場合は、それぞれの SMTP サーバーの詳細と前提条件を使用します。