はじめに
メール送信を自動化することで、業務効率化や通知の自動化を実現することができます。本記事では、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メールの装飾や、複数宛先への送信を追加するなど、機能を拡張してみてください!



コメント