自宅サーバーでは毎日メールを送信するバッチを処理している。これまではmacOS上のJenkinsで動かしていたため、Swiftで実装したプログラムを使用していたが、JenkinsをWindowsマシンへ移行することに伴い、Pythonへ移植することにした。
本記事では、Pythonを使用してGmailからメールを送信する手順について紹介する。
Gmail のアプリパスワードを発行する
PythonからGmailを使うためには「アプリパスワード」が必要となる。アプリパスワードはGoogleアカウントのセキュリティページから生成できる。
Googleアカウントのセキュリティページにアクセスする。「2段階認証プロセス」をクリックする。
「アプリ パスワード」をクリックする。
一番下の新規生成で任意の項目を選択してアプリパスワードを生成する。
PpppAaaaSSssWr0d
のような12桁のパスワードが発行されたかと思う。
Python を使って Gmail からメールを送信する
Pythonを用いてGmailからメールを送るには smtplib.SMTP('smtp.gmail.com', 587)
を使用してSMTPオブジェクトを作成する。その後、ログイン処理をおこない、メールを送信する。
import datetime import smtplib from email.mime.text import MIMEText from email.header import Header # 送り先 mailAddress = "example.draft@blog.hatena.ne.jp" # GmailのIDとパスワード sendAddress = "example@gmail.com" password = "PpppAaaaSSssWr0d" # タイトル subject = "タイトル" # メール本文 body = """ こんにちは! このメールはテストメールだよ! """ # メール設定 msg = MIMEText(body, 'plain', 'utf-8') msg['Subject'] = Header(subject, 'utf-8') msg['From'] = "example@gmail.com" msg['To'] = mailAddress # メール送信 s = smtplib.SMTP('smtp.gmail.com', 587) s.starttls() s.login(sendAddress, password) s.send_message(msg) s.quit()
以上、このスクリプトを実行すればメールが送信される。