酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Python を使って Gmail からメールを送信する

自宅サーバーでは毎日メールを送信するバッチを処理している。これまでは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()

以上、このスクリプトを実行すればメールが送信される。