djangoとpostfixでメールを送信する方法
djangoとpostfix(smtpサーバー)でメールを送信する方法についてまとめていきます。
環境
ubuntu16.04
django1.11
postfixの設定
まず、smtpサーバーとは簡単に言うとメールサーバーのことです。
電子メールを送信したり、受信したりと。
まずは自分のサーバにsmtpサーバーであるpostfixを構築していきます。
以下のサイトがわかりやすいと思います。
ただsasl設定をしている上記サイトはsaslを設定しているので
これだけではだめでdovecotをインストールして認証OKにしてあげないといけません。
まぁここではDjangoとの連携なのでここでは紹介しません。
Django側の設定
smtpのサーバーが設定できたら
djangoのsetting.pyに以下を追加します。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = '' #自分でsmtpサーバーに決めたhost名、初期値のlocalhostでもok(smtpに初めから設定されてるので)
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = '○✗運営局 <support@"ドメイン">' #ドメインはsmtpサーバーに追加したものでいいかと ○✗運営局は送信元の名前で好きなのを
あとは
python manage.py shell
で以下のものを自分用に書き換えてテストをしてみましょう。
from django.core.mail import send_mail
send_mail('tetet here', 'Here is the message.', '送信元アドレス',['送信先アドレス'], fail_silently=False)
これだけでできるので認証系のシステムを作成している方は作ってみてはどうでしょうか。