1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HerokuのSendgridを利用してDjangoで楽々メール送信の巻

Posted at

##

もしもアプリにメール送信機能がある場合にはメールの設定が正確かどうか確認してください。
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

いきなりですが最終的にこの形になります。

settings.py
#メール設定
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の最終行で

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を利用したメール送信は非常に楽です。また独自ドメインを用意する手間も省けますのでメール機能に時間を取られたくない開発者にはとてもおすすめです。
ですが設定がこのように若干ですが複雑なのでよく確認してください。

ちなみに私は超が付くほど頭が悪いので全然すんなり設定できませんでしたよ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?