##
もしもアプリにメール送信機能がある場合にはメールの設定が正確かどうか確認してください。
Gmailで送信する場合もあればSendGridを利用して送信するかもしれません。
私はSendGridを利用しましたので今回はSendGridの設定を例にご紹介します。
SendGridの利用方法ですがまずはアカウントの作成とHerokuのAdd-onに追加する作業を行ってください。
(ちなみに私はアカウントの取得に数日かかりました...)
SendGridをDjangoで利用する場合おそらくAPIキーを利用する方法が公式の推奨法かと思います。
APIキーの発行については公式で優しく解説してくれていますのでここでは割愛させていただきます。
https://sendgrid.kke.co.jp/docs/Tutorials/A_Transaction_Mail/manage_api_key.html
いきなりですが最終的にこの形になります。
#メール設定
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #メール送信しますよ
DEFAULT_FROM_EMAIL = 'hoge@app.com' #送信者のアドレスです。自由に決められます。
#SendGrid設定
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
おそらくこの形が最新版ではないかと思います。
ちなみにAPI_KEYはもちろんHerokuの環境変数に隠しますので
settings.py
の最終行で
if not DEBUG:
SECRET_KEY = os.environ['SECRET_KEY']
EMAIL_HOST_PASSWORD = os.environ['SENDGRID_API_KEY'] #追加
import django_heroku
django_heroku.settings(locals())
本番環境時にはdjango_heroku
でSendGridのAPI_KEYを読みます。
ちなみにDB編でもご紹介しましたがherokuの環境変数の設定は
$ heroku config:set SENDGRID_API_KEY='あなたのAPIキー'
で行ってくださいね。
SendGridのAPIを利用したメール送信は非常に楽です。また独自ドメインを用意する手間も省けますのでメール機能に時間を取られたくない開発者にはとてもおすすめです。
ですが設定がこのように若干ですが複雑なのでよく確認してください。
ちなみに私は超が付くほど頭が悪いので全然すんなり設定できませんでしたよ。