プログラムで異常が起こった時の通知メールや定期的な通知メールを行う際に、自動的にメールを送信する機能があると何かと便利です。
今回はそのような場面で使えそうなpythonを使ってGmailを自動送信する方法の備忘録になります。
では始めます。
1:Gmailのセキュリティ設定を低くする
pythonを使ってGmailを送信するためには、Googleアカウントのセキュリティを「低く」する必要があります。なので通知専用のGmailアドレスを取得するなどするのが良いかと思います。
Googleアカウントのセキュリティを低くするためには、まず通知したいGmailを持つGoogleアカウントにログインをして「Googleアカウント」画面を開きます。そして左側にある「セキュリティ」の項目をクリックし、スクロールさせた先にある「安全性の低いアプリのアクセス」を「オン」にします。
これでpythonを使ってGmailを送信できるようになります。
2:pythonでGmailを送信するサンプル
では実際にGmailを送信してみます。ソースコード中の「適宜書き換える」と書いてある部分はそれぞれ自分用に書き換えてください。
・gmail_test.py
# -*- coding:utf-8 -*- import smtplib, ssl from email.mime.text import MIMEText from datetime import datetime # アカウント情報 gmail_account = "XXXXXX@gmail.com" # Gmailアカウントアドレス(適宜書き換える) gmail_password = "xxxxxxxxxxx" # パスワード(適宜書き換える) # context作成 context = ssl.create_default_context() # Gmailにログイン server = smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) server.login(gmail_account, gmail_password) # 本文(htmlなので改行は<br>を使う) body_str = "test" + "<br>" body_str += "てすとですよ" + "<br><br>" body_str += datetime.now().strftime("%Y/%m/%d %H:%M:%S") # 現在時刻も追加 # メールデータ(MIME)作成 msg = MIMEText(body_str, "html") msg["Subject"] = "メールタイトル" # メールタイトル msg["To"] = "yyyyyyy@gmail.com" # 送信先メールアドレス(適宜書き換える) msg["From"] = gmail_account # 送信元メールアドレス # メール送信 server.send_message(msg)
実行してエラーが出なければメールが送られているので確認してみてください。
以上がpythonを使ってGmailを自動送信する方法です。
Googleアカウントのセキュリティを下げる必要はありますが、上手く使えば何かと便利だと思います。
・参考資料