はじめに
メール送信を自動化することで、業務効率化や通知の自動化を実現することができます。本記事では、Pythonを使ってGmailからメールを送信するスクリプトを作成し、その手順を解説します。
初心者でも理解しやすいように、コードや設定手順を詳しく説明します。
やりたいこと
Pythonを使って、Gmailを利用した簡単なメール送信機能を構築します。
- Gmailサーバーを使用
- HTML形式のメールを送信
- 2段階認証およびアプリパスワードの設定を活用
準備するもの
ライブラリ
以下のPythonライブラリを使用します。
- smtplib: SMTPプロトコルを使用してメールを送信する標準ライブラリ。
- ssl: 安全な通信を行うための標準ライブラリ。
- email.mime.text (MIMEText): メールの内容をHTML形式で作成するためのモジュール。
以下のコマンドでPythonをインストールした環境で実行してください。
pip install ssl email
※ 標準ライブラリのため、通常インストール済みです。
2段階認証、アプリパスワード等の設定手順
Gmailでメールを送信するには、セキュリティ設定を正しく行う必要があります。
1. Gmailアカウントで2段階認証を有効にする
- Googleアカウントのセキュリティ設定にアクセス。
- 「2段階認証プロセス」を有効化します。
- スマートフォンやメールアドレスを使って設定を完了します。
2.アプリパスワードを生成する
以下のリンクからアプリパスワードの設定を行う
https://myaccount.google.com/apppasswords
- アプリ名を設定し、16桁のパスワードを表示させる
- 表示される16文字のアプリパスワードをコピー(後述のコードで使用します)
ディレクトリ構成
スクリプトとアカウント情報を分離して管理するため、以下のようなディレクトリ構成を推奨します。
project_directory/
gmail_send.py # メインスクリプト
my_account.py # アカウント情報(アプリパスワードなど)
コードスクリプト
myAccountは、Gmailのアカウント情報を分離して管理するためのファイルです。
このファイルには、メールアドレスとアプリパスワードを記載します。
以下のように記述します。
my_account.py account = "your_email@gmail.com" # 使用するGメールアドレス password = "****************" # 16桁のアプリパスワード
my_account.py
には機密情報を含むため、Gitなどのバージョン管理システムに追加しないように注意してください
以下がGmailを使った自動メール送信のPythonコードです。
import smtplib, ssl from email.mime.text import MIMEText import my_account as gmail #アカウント情報 #メイン処理 def send_email(): #メール送信のメイン処理を実行する関数。 msg = make_text( to_address=gmail.account, # 宛先(自身のメールアドレスを指定) subject=' 送信テスト', # メールの件名 body='こんにお世話になります。yamaです。' # メール本文 ) #メール送信 send_gmail(msg) #メールデータを生成する def make_text(to_address, subject, body): msg = MIMEText(body, 'html') # 本文をHTML形式で作成 msg['Subject'] = subject #件名 msg['To'] = to_address #宛先 msg['From'] = gmail.account #送信元 return msg #Gmailに接続 def send_gmail(msg): #Gmailサーバーに接続 server = smtplib.SMTP_SSL( 'smtp.gmail.com', 465, context=ssl.create_default_context() ) server.set_debuglevel(0) #ログ出力 #ログインしてメールを送信 server.login(gmail.account, gmail.password) server.send_message(msg) if __name__ == '__main__': send_email() print('ok.')
コードスクリプト
コンソールに「ok.」と表示されます。
Gmailを確認すると、メールが確認できます。
コード解説
make_mime_text
関数)この関数は、HTML形式のメールデータを作成します。
- 引数
mail_to
: 宛先のメールアドレス。
subject
: メールの件名。
body
: メール本文。 - 処理内容:
MIMEText
を使って、メール本文をHTML形式に変換。
件名、送信先、送信元をメールデータに設定。
send_gmail
関数)この関数は、GmailのSMTPサーバーに接続し、メールを送信します。
SMTP_SSL
を使用:
Gmailサーバーに暗号化された接続を確立します。
サーバー名:smtp.gmail.com
。
ポート: 465。login
メソッド:
Gmailアカウントとアプリパスワードを使用して認証。send_message
メソッド:
作成したメールデータ(msg
)を送信します。
send_test_email
関数)この関数は、メールデータを作成し、送信する全体の流れを制御します。
make_mime_text
を呼び出し:
メールデータを生成。send_gmail
を呼び出し:
生成したメールデータを実際に送信。
まとめ
本記事では、Pythonを使用してGmailを利用した自動メール送信スクリプトを作成する方法を解説しました。以下のポイントをカバーしました:
- Gmailのセキュリティ設定(2段階認証とアプリパスワードの設定)
- Python標準ライブラリを用いた安全なメール送信
- ディレクトリ構成とスクリプト管理のベストプラクティス
このスクリプトは、業務や通知の自動化に役立つツールとして活用できます。次のステップとして、HTMLメールの装飾や、複数宛先への送信を追加するなど、機能を拡張してみてください!
コメント