標準ライブラリsmtplibを使い、SMTP経由でのメール送信を実装します。 今回はGmailのSMTPサーバーを使いご紹介します。
Gmail アプリパスワードが必要です。 取得方法は、以下の投稿をご確認ください。
pip install python-dotenv
pythonでは、smtp用のライブラリが標準搭載されています。 pipを使って、環境変数用のライブラリのみインストールします。
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USER="Gmailメールアドレス"
MAIL_SECURE=ssl
GMAIL_APP_PASSWORD="取得したアプリパスワード"
MAIL_USERとGMAIL_APP_PASSWORDは自身のものを記載してください。 その他の項目は固定です。 ※.envファイルは.gitignoreに設定してあることを忘れずに。
from dotenv import load_dotenv
import os
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
load_dotenv()
sender_email = os.getenv('MAIL_USER')
password = os.getenv('GMAIL_APP_PASSWORD')
host = os.getenv('MAIL_HOST')
port = os.getenv('MAIL_PORT')
subject = "件名"
body = "本文"
receiver_email = "送信先メールアドレス"
message = MIMEMultipart()
message["From"] = "表示名 <sender_email>"
message["To"] = receiver_email
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))
with smtplib.SMTP_SSL(host, port) as server:
server.login(sender_email, password)
text = message.as_string()
server.sendmail(sender_email, receiver_email, text)
その他の項目は固定です。
このプログラムをサーバー側で(REST APIとしてなど)実行することで、メール送信機能を動かすことができます。 今回は簡易的に以下のようにコマンドライン上で送信確認しました。
python3 main.py
©Omori
MEOW!