smtplibモジュールとemail.mimeモジュールを使って、メールを送信します。
Pythonでメール送信機能を作成することによって、プログラムやアプリなど処理の過程で、メールを自動送信できるようになります。
もくじ
事前準備
まずは、エックスサーバーで送信するメールアカウントを【メールアカウント追加】から作成します。
次に、【メールソフト設定】で、【送信メール(SMTP)サーバー】の項目を確認します。
今回は、以下のように設定しています。
それぞれ、自身の環境に合わせて変更してください。
SMTPの設定
送信メール(SMTP)サーバー | xxxxx.xserver.jp |
ポート | 465 |
アカウント | sample@dattesar.com |
パスワード | dattesar_pass |
メールの内容
宛先(To) | test@dattesar.com |
送信元(From) | sample@dattesar.com |
件名(Subject) | テストメール |
本文(Text) | このメールはPythonで送信しています。 |
ソースコード
プログラムの書き方は色々ありますが、私は自分が分かりやすいように、SMTPの設定とメールの内容を分けて、辞書型で記述しています。
import smtplib
from email.mime.text import MIMEText
smtp_setting = {
'host': 'xxxxx.xserver.jp',
'port': 465,
'account': 'sample@dattesar.com',
'password': 'dattesar_pass'
}
email_content = {
'To': 'test@dattesar.com',
'From': 'sample@dattesar.com',
'Subject': 'テストメール',
'Text': 'このメールはPythonで送信しています。'
}
msg = MIMEText(email_content['Text'], 'plain', 'utf-8')
msg['Subject'] = email_content['Subject']
msg['From'] = email_content['From']
msg['To'] = email_content['To']
with smtplib.SMTP_SSL(smtp_setting['host'], smtp_setting['port'], timeout=10) as smtp:
smtp.login(smtp_setting['account'], smtp_setting['password'])
smtp.send_message(msg)
smtp.quit()