新着記事

PythonでメールをGmailを使って自動送信する方法!

  • B!

Pythonを使用してGmailを介してメールを自動的に送信する方法を学びましょう!

メールの自動送信は、ビジネスやプロジェクトの効率化に役立ちます。

この記事では、Pythonの標準ライブラリであるsmtplibを使用してGmailのSMTPサーバーに接続し、メールを送信する手順を解説していきます。

Pythonの力を借りれば、簡単に自動化されたメール送信プログラムを作成することが可能です。

本記事の内容を参考にしていただき、PythonでGmailを自動送信する方法を習得しましょう。

Pythonを使ってGmailから自動送信するシンプルな方法

まずはPythonでGmailを送信する手順を解説します。
その前にGmailからメールを送信するにはGoogle アプリ パスワードの準備が必要となります。

Googleアプリパスワード作成

Google アプリ パスワードは、Google アカウントに 2 段階認証を設定している場合に、古いバージョンのアプリやデバイスで Google アカウントにログインするために使用できるパスワードです。

アプリ パスワードを作成するには、次の手順で作成します。
Googleアカウントがない場合はアカウントを作成しましょう。
Googleアカウント

Googleアカウントを作成し終わったら

  1. [Googleアカウント] に移動。
  2. [セキュリティ] を選択。
  3. 少し下の方へスクロールし、[Google へのログインする方法] [2 段階認証プロセス] を選択。
  4. ページの下部にある [アプリ パスワード] を選択します。
  5. アプリ パスワードを使用する場所を覚えやすい名前を入力してください。
  6. [アプリ パスワードを作成] を選択。
  7. アプリパスワードが表示されます。
  8. アプリパスワードをコピー

アプリ パスワードは、1 回限りのパスワードです。2段階認証プロセスを有効にしている場合はアプリパスワードを使用してアプリからGoogleアカウントにログインできます。

Pythonを使ってGmailから自動送信する方法

まずは、シンプルにGmailに送信するサンプルコードです。

import smtplib
from email.mime.text import MIMEText

#Googleアプリパスワード
app_pass="your_app_password"

#本文
body="""これはPython学習帳のテスト3です。
2行目
3行目
4行目"""
msg=MIMEText(body)

#メールの件名
msg["Subject"]="Python学習帳のテスト3"

#あなたのGmailアドレス
msg["From"]="your_email@gmail.com"

#メールの送信先
msg["To"]="recipient_email@gmail.com"

smtp=smtplib.SMTP("smtp.gmail.com",587)
smtp.ehlo()
smtp.starttls()
smtp.ehlo()

#あなたのGmailアドレス,あなたのGmailアプリパスワード
smtp.login("xxxxxx@gmail.com",app_pass)
smtp.send_message(msg)
smtp.close()

上記のサンプルコードを使って、PythonのGmail自動送信を行っていきます。

Gmail自動送信の手順としては、下記の通りです。

  1. smtplibとMIMETextをインポートする
  2. Googleアプリパスワードを入力する
  3. MIMETextを使ってテキストメールの本文を入力する
  4. メールの件名を入力する
  5. 送信元(あなた)のメールアドレスを入力する
  6. 送信先(宛先)のメールアドレスを入力する
  7. SMTPサーバに接続する
  8. Gmailのメール認証を行う
  9. Gmailからメールを送信する
  10. SMTPセッションを終了する

ここからそれぞれの手順について詳しく解説していきます。

smtplibとMIMETextをインポートする

import smtplib
from email.mime.text import MIMEText

smtplibとMIMETextをインストールしてメールを送信します。
smtplib は、Python で SMTP プロトコルを使用するための標準ライブラリで、SMTP は、メールを送受信するために使用されるプロトコルです。
MIMETextは、Pythonでテキストメールを送信するために使用されるモジュールです。

Googleアプリパスワードを入力する

まずは先ほど取得したGoogleアプリパスワードを「app_pass」 に 代入しましょう
“Googleパスワードを入力”を入力

#アプリパスワード
app_pass="your_app_password"

MIMETextを使ってテキストメールの本文を入力する

#本文
body="""\これはPython学習帳のテスト3です。
2行目
3行目
4行目\
"""
msg=MIMEText(body)

注:本文が一行の場合: ”本文” 又は ’本文’でくくる。
本文が複数行の場合:”””\本文始まり
2行目
…行目\
”””
と始まりと終わりに”(ダブルクォーティーション)×3 \(バックスラッシュ)でくくる。

メールの件名を入力する

#メールの件名
msg["Subject"]="Python学習帳のテスト3"

送信元(あなた)のメールアドレスを入力する

#あなたのGmailアドレス
msg["From"]="your_email@gmail.com"

送信先(宛先)のメールアドレスを入力する

#メールの送信先
msg["To"]="recipient_email@xxx.xxx"

SMTPサーバに接続する

smtp=smtplib.SMTP("smtp.gmail.com",587)
smtp.ehlo()
smtp.starttls()
smtp.ehlo()

smtp = smtplib.SMTP(“smtp.gmail.com”, 587)
「587」は、smtpを使用するときのポート番号です。Outlookからメールを送信するときも「587」を使います。

Gmailのメール認証を行う

#あなたのGmailアドレス,あなたのGmailアプリパスワード
smtp.login("xxxxxx@gmail.com",app_pass)
smtp.send_message(msg)
smtp.close()

Gmailからメールを送信する

次のコマンドを実行して、メールを送信します。

smtp.send_message(msg)

SMTPセッションを終了する

smtp.close()メソッドでSMTPセッションを終了します。
このメソッドは、SMTPセッションが不要になったときに使用します。

smtp.close()

これで、PythonでGmailkからメールを送信することができました。

Pythonを使ってGmailから自動送信する方法のまとめ

Pythonは、上記で解説したメールを自動送信するだけでなく、Loopを使えば同じ内容を一斉に複数の宛先に送ることもできます。

メールを自動化・一斉送信することがあれば、Pythonを活用することで手作業で送信する手間を省き、効率的に作業を行うことができます。

自動化されたメール送信により、時間と手間を節約し、ビジネスやプロジェクトの成果を最大化することができるでしょう。