Pythonでメール送信

pythonでメールを送るサンプルコードです

Googleのアカウントを使ってメールを送信します(つまりsmtpサーバーとして smtp.gmail.com を使います)

準備(gmail側の準備)

あらかじめGoogleのアカウントで,メール送信専用の「アプリパスワード」を作成しておきます.

手順1
Googleアカウント」(https://myaccount.google.com)にログイン
手順2
左のメニューから「セキュリティ」を選択
手順3
Googleにログインする方法」で「2段階認証プロセス」を選択(2段階認証を有効にしていない場合は,2段階認証を有効にしないとアプリパスワードが使えません)
手順4
「アプリパスワード」を選択
手順5
「アプリ固有のパスワードを新規作成するには、下にアプリ名を入力してください」にアプリ名を入力する.アプリ名は何でも良い.例えば「pythonのメール送信用」でOK
手順6
「作成」ボタンを押下

pythonのコード

from smtplib import SMTP
from email.mime.text import MIMEText
from email.utils import formatdate

def send_mail(myaccount, mypassword, to, text, subject):
    smtpobj = SMTP(host='smtp.gmail.com', port=587)
    smtpobj.starttls()
    smtpobj.login(myaccount, mypassword)

    msg = MIMEText(text)
    msg['Subject'] = subject
    msg['From'] = myaccount
    msg['To'] = to

    msg['Date'] = formatdate()

    smtpobj.send_message(msg)
    smtpobj.close()

使い方は以下の通り

myaccount = "gmailのメアド(ユーザ名@gmail.comの形式になります)"
mypassword = "アプリパスワード(上記で作成した文字列)"
to = "送信先のメールアドレス"
text = "メール本文"
subject = "メールの件名"

send_mail(myaccount, mypassowrd, to, text, subject)