Gmailはプログラムからメール送信をすることができる機能が提供されています。
ここでは、その手順を記しておきます。
現在は、「アプリパスワード」という仕組みになっています。
過去には、メールアドレスとログインパスワードで送信できましたが、現在新規ではその機能はできないようです。
この「「アプリパスワード」は通常のGoogleアカウントにログインするのとは別のパスワードで、プログラムからのみ使用することができます。
アプリパスワード作成手順
まず、アプリで使う用のGmailアカウントを作成します。
普段使っているGmailアカウントでも、もちろん作成可能ですが、プログラム用に新しく作成することをお勧めします。
以下は、そのアカウントでGmailにログインした前提での手順です。
以下のマイアカウントからセキュリティを開きます。
myaccount.google.com
https://myaccount.google.com/
Googleにログインする方法を設定します。
上部の検索から「アプリパスワード」と検索し開きます。
任意のアプリ名称を設定します。
アプリパスワードが生成されるので控えておきます。
ちなみに、送信元のアカウントの表示名やアイコンは「個人情報」から設定できます。
Pythonでメール送信
以下を参考に、settioong.txt
から設定を読み込み送信するようにしました。
settioong.txt
は改行区切りで、アカウントのメールアドレス、アプリパスワード、送信先アドレスを記載します。
news.mynavi.jp
# coding: utf-8 import smtplib import ssl from email.mime.text import MIMEText mail_account = "" ap_password = "" mail_to = "" def read_setting(): f = open("setting.txt", "r", encoding="utf-8") r = f.readlines() global mail_account global ap_password global mail_to mail_account = r[0].replace("\n", "") ap_password = r[1].replace("\n", "") mail_to = r[2].replace("\n", "") str.lstrip(mail_account) str.lstrip(ap_password) str.lstrip(mail_to) f.close() def send_mail(subject, body, mail_to, mail_acnt, ap_pass): print("送信元アドレス: ", mail_account) print("アプリパスワード: ", ap_password) print("送信先アドレス: ", mail_to) msg = MIMEText(body, "html") msg["Subject"] = subject msg["To"] = mail_to msg["From"] = mail_acnt # Gmailに接続 --- (*4) server = smtplib.SMTP_SSL( "smtp.gmail.com", 465, context=ssl.create_default_context() ) server.login(mail_acnt, ap_pass) server.send_message(msg) # メールの送信 print("Gmail send ok.") read_setting() send_mail("メールテスト", "これはテストです", mail_to, mail_account, ap_password)
まとめ
Line Notifyがサービス終了となるので、代わりの方法として今、個人的には一番有力です。
ちなみに、Gmailは商用利用も制限はないそうです。
(OKとも書いてないが、NGとも書いていない)
policies.google.com