旅好きエンジニアのメモ

旅のこと映画、統計、会計、プログラミングなど、気の向くままに語ります

djangoとpostfixでメールを送信する方法

djangopostfix(smtpサーバー)でメールを送信する方法についてまとめていきます。

環境

ubuntu16.04
django1.11

postfixの設定

まず、smtpサーバーとは簡単に言うとメールサーバーのことです。
電子メールを送信したり、受信したりと。

まずは自分のサーバにsmtpサーバーであるpostfixを構築していきます。
以下のサイトがわかりやすいと思います。

www.server-world.info

 

ただ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)

これだけでできるので認証系のシステムを作成している方は作ってみてはどうでしょうか。