« ^ »

PythonでGmailのSMTPサーバーを使ってEmailを送信する

所要時間: 約 1分

SMTPサーバーとしてMailHogを起動

テスト用の簡易なSMTPサーバーであるMailHogを起動する。

mailhog

環境変数の設定

設定は環境変数から取得するため.envを用意しておく。

EMAIL_HOST: "smtp.gmail.com"
EMAIL_PORT: 587
EMAIL_HOST_USER: "[email protected]"
.env

SMTPでの送信処理

実際にMailHogを相手に送信処理を行う。

  import os
  import smtplib

  from email.mime.text import MIMEText
  from email.utils import formatdate

  from_addr = os.environ["EMAIL_HOST_USER"]
  to_addr = os.environ["EMAIL_TARGET_EMAIL"]

  smtpobj = smtplib.SMTP(os.environ["EMAIL_HOST"], int(os.environ["EMAIL_PORT"]))
  smtpobj.ehlo()
  smtpobj.starttls()
  smtpobj.ehlo()
  smtpobj.login(os.environ["EMAIL_HOST_USER"], os.environ["EMAIL_HOST_PASSWORD"])

  msg = MIMEText('body Message')
  
  msg['Subject'] = 'subject'
  msg['From'] = from_addr
  msg['To'] = to_addr
  msg['Date'] = formatdate()

  smtpobj.sendmail(from_addr, to_addr, msg.as_string())
  smtpobj.close()