プログラミング

【SMTP】Pythonを使ってGmailを自動送信する方法

python-gmail

電子メールはチャットが流行っている現代でも重要なコミュニケーション手段の一つです。

本記事ではそんな電子メール、特にGmailの送信をPythonを使って自動化する方法について解説していきたいと思います(^^)

Gmailを利用するにはGoogleアカウントが必要です。本記事ではアカウントを既に持っている前提で解説をしているので注意してください。

メール送信を自動化することができれば定期的な連絡業務から解放されるのに加えてヒューマンエラーを解消することができるでしょう。

本記事を皮切りにPythonを使ったGmailの自動化技術を磨いていただけたら嬉しいです。

ハニ太郎
ハニ太郎
それでは早速本題に移っていきたいと思います♪
python-side-job
【土日在宅OK】Pythonの副業におすすめの案件紹介サイト5選土日を有効活用してPython副業をしてみたい!そんな方向けに本記事ではPythonの副業案件を扱うおすすめの案件紹介サイトを厳選して5つご紹介しております。...

SMTP経由でPythonからGmailを手軽に自動送信する

ロボット

Pythonからメールを送信するにはSMTPを使うのが手軽で簡単な方法と言えるでしょう。

そもそもSMTPとは?

SMTPとは、Simple Mail Transfer Protocolの略で、メールの送信プロトコルです。

SMTP経由でのメール送信はGmailで推奨されていないため次章で解説する「安全性の低いアプリ」のアクセスを有効にする設定が必要となる。

※上記理由からSMTP経由でPythonのプログラムからメールを自動送信する手法はあくまで簡易的な業務効率化くらいの位置づけで考えておいた方が無難というのが私の意見です。

PythonでSMTPを扱う際はsmtplibモジュールを利用する

PythonのプログラムでSMTPを扱うにはsmtplibモジュールを利用します。

smtplibモジュールはPythonに標準で搭載されているためターミナルからpipコマンドなどで別途インストールする必要はありません。

Pythonからメールを送信するにはSMTPを使うのが手軽で簡単。smtplibモジュールを利用することで簡単にプログラムを実装することができる。

 

SMTP経由でPythonからGmailを自動送信するのに必要な事前準備

プログラミング学習手順

まずはGoogleアカウントにアクセスして左側メニューのセキュリティをクリックします。

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などのサイトで学習してみることをオススメします。

とりあえず上記のコードを活用すれば基本的なGmailの自動送信処理は実装することができるはずです。

 

【SMTP】Pythonを使ったGmailの自動送信まとめ

python-gmail

ここまでPythonを使ったSMTP経由でのGmail自動送信のやり方について解説してきましたがいかがだったでしょうか?

本記事の内容はあくまで入門レベルですので、これから専門書やサイトなどを参考にしてスキルを磨いていく必要があります。

その歩みの第一歩として本記事の内容が少しでもあなたのお役に立てたのなら幸いです。

python-side-job
【土日在宅OK】Pythonの副業におすすめの案件紹介サイト5選土日を有効活用してPython副業をしてみたい!そんな方向けに本記事ではPythonの副業案件を扱うおすすめの案件紹介サイトを厳選して5つご紹介しております。...
こちらの記事もおすすめ!

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です