アプリ開発ナレッジ

アプリ開発のナレッジを掲載します

Pythonお勉強Tips② - Email

実装コード基本形

MSのホットメールを使う
なおgit管理する場合は個人情報はコンフィグファイルに分けてGitignoreするのを忘れずに

from email import message
import smtplib

# メール設定準備
smtp_host = 'smtp.live.com'
smtp_port = 587
from_email = [YOUR_EMAIL]
to_email = [TO_EMAIL]
user_name = [YOUR_USERNAME or YOUR_EMAIL]
password = [PASSWORD]

# メール設定
msg = message.EmailMessage()
msg.set_content('メール本文')
msg['Subject'] = 'メール題名'
msg['From'] = from_email
msg['To'] = to_email

# コネクション
server = smtplib.SMTP(smtp_host, smtp_port)
server.ehlo()
server.starttls()
server.ehlo()
server.login(username, password)
server.send_message(msg)
server.quit()

これが一連の流れ

添付ファイルをつける

from email.mime import multipart
from email.mime import text

# メール設定準備
上記踏襲

# メール設定
上記踏襲

msg.attach(text.MIMEText('test email', 'plain'))

with open('filename.py', 'r') as f:
  att = text.MIMEText(f.read(), 'plain')
  att.add_header(
    'Content-Disposition',
    'attachment',
    filename='filename.txt'
  )
  msg.attach(att)

# コネクション
同じ

メールでログ内容を送る

基本的にはログ分析ツールを利用して送る方式が一般的
コードでゴリゴリ実装する場合は、SMTPHandlerを利用する