LoginSignup
11
12

More than 3 years have passed since last update.

Google workspace や Gmailのメールアドレスを使って、pythonから送信する。

Last updated at Posted at 2021-03-25

本記事の対象者

  • GCPでサービスを作り、メールを送信する仕組みを無料で作りたい人。(サービスのホスティングが無料ではなく、メール送信部分だけ)

目的

sendgridなどの外部のサービスを使わずに、pythonを使ってgmailを送信する。

必要なもの

  • Gmail または、Google workspaceのアカウント (Google workspaceは管理者権限が必要)
  • pythonを動かす環境

メールの設定

送信者の設定

設定から二段階認証を有効にする
スクリーンショット 2021-03-25 11.24.04.png

二段階認証有効後、アプリパスワードを作成する
スクリーンショット 2021-03-25 11.31.29.png

メールを選択し、「その他」を選び、「〇〇用」などとラベルを決める
スクリーンショット 2021-03-25 11.32.48.png

「生成」ボタンを押すと、パスワードが表示される(再表示は不可能)ので、パスワードをメモする。

Google workspaceの設定

管理画面からアプリを選択
スクリーンショット 2021-03-25 10.58.41.png

アプリから「Google Workspace」を選択
スクリーンショット 2021-03-25 11.01.30.png

「Gmail」を選択
スクリーンショット 2021-03-25 11.02.49.png

「ルーティング」を選択
スクリーンショット 2021-03-25 11.04.20.png

SMTPリレーサービスの設定をクリック
スクリーンショット 2021-03-25 11.06.33.png

設定項目を下記のように入力(名前は利用内容を書いてください)して保存
スクリーンショット 2021-03-25 11.07.51.png

pythonでの処理

import smtplib
from email.mime.text import MIMEText


message = "メール本文"
msg = MIMEText(message, "html")
msg["Subject"] = "メール表題"

# 587はポート番号
smtpobj = smtplib.SMTP('smtp.gmail.com', 587)

smtpobj.ehlo()
(250, b'smtp.gmail.com at your service, [27.82.28.239]\nSIZE 35882577\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES\nPIPELINING\nCHUNKING\nSMTPUTF8')

smtpobj.starttls()
(220, b'2.0.0 Ready to start TLS')

smtpobj.ehlo()
(250, b'smtp.gmail.com at your service, [27.82.28.239]\nSIZE 35882577\n8BITMIME\nAUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH\nENHANCEDSTATUSCODES\nPIPELINING\nCHUNKING\nSMTPUTF8')

smtpobj.login("送信設定したメールアドレス", "生成したアプリパスワード(メールのパスワードではない)")
(235, b'2.7.0 Accepted')

# 送信実施
smtpobj.sendmail("送信設定したメールアドレス(from)", "送信するメールアドレス(to)", msg.as_string())
11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12