電子メールはチャットが流行っている現代でも重要なコミュニケーション手段の一つです。
本記事ではそんな電子メール、特にGmailの送信をPythonを使って自動化する方法について解説していきたいと思います(^^)
メール送信を自動化することができれば定期的な連絡業務から解放されるのに加えてヒューマンエラーを解消することができるでしょう。
目次
SMTP経由でPythonからGmailを手軽に自動送信する
Pythonからメールを送信するにはSMTPを使うのが手軽で簡単な方法と言えるでしょう。
そもそもSMTPとは?
SMTPとは、Simple Mail Transfer Protocolの略で、メールの送信プロトコルです。
※上記理由からSMTP経由でPythonのプログラムからメールを自動送信する手法はあくまで簡易的な業務効率化くらいの位置づけで考えておいた方が無難というのが私の意見です。
PythonでSMTPを扱う際はsmtplibモジュールを利用する
PythonのプログラムでSMTPを扱うにはsmtplibモジュールを利用します。
smtplibモジュールはPythonに標準で搭載されているためターミナルからpip
コマンドなどで別途インストールする必要はありません。
Pythonからメールを送信するにはSMTPを使うのが手軽で簡単。smtplibモジュールを利用することで簡単にプログラムを実装することができる。
SMTP経由でPythonからGmailを自動送信するのに必要な事前準備
まずはGoogleアカウントにアクセスして左側メニューのセキュリティをクリックします。
そして上画像の通り「安全性の低いアプリのアクセス」パネルにてアクセスを有効にするをクリックすれば事前準備は完了です。
実際にGmailの自動送信プログラムをPythonで書いてみよう
前章までの内容で事前準備は整ったので、実際にSMTP経由でGmailを自動送信するプログラムをPythonで書いてみましょう(^^)
以下、PythonからSMTP経由でGmailを自動送信するプログラムのサンプルです。なお、コード内に記載のMIME形式については後述します。
import smtplib, ssl
from email.mime.text import MIMEText
# Gmail設定
my_account = 'XXX@gmail.com'
my_password = 'XXXXXXXX'
def send_gmail(msg):
"""
引数msgをGmailで送信
"""
server = smtplib.SMTP_SSL('smtp.gmail.com', 465, context=ssl.create_default_context())
# ログ出力
server.set_debuglevel(0)
# ログインしてメール送信
server.login(my_account, my_password)
server.send_message(msg)
def make_mime(mail_to, subject, body):
"""
引数をMIME形式に変換
"""
msg = MIMEText(body, 'plain') #メッセージ本文
msg['Subject'] = subject #件名
msg['To'] = mail_to #宛先
msg['From'] = my_account #送信元
return msg
def send_my_message():
"""
メイン処理
"""
# MIME形式に変換
msg = make_mime(
mail_to='XXX@gmail.com', #送信したい宛先を指定
subject='テスト件名',
body='テストです。テストです。テストです。')
# gmailに送信
send_gmail(msg)
if __name__ == '__main__':
send_my_message()
コード内に出てきたMIMEとは、Multipurpose Internet Mail Extensionsの略で、標準の電子メールデータの規格になります。
MIMEはメール処理の自動化には欠かせない知識ですので、この機会にMDN Web Docsなどのサイトで学習してみることをオススメします。
【SMTP】Pythonを使ったGmailの自動送信|まとめ
ここまでPythonを使ったSMTP経由でのGmail自動送信のやり方について解説してきましたがいかがだったでしょうか?
本記事の内容はあくまで入門レベルですので、これから専門書やサイトなどを参考にしてスキルを磨いていく必要があります。
その歩みの第一歩として本記事の内容が少しでもあなたのお役に立てたのなら幸いです。