djangoでmailgunを使う方法
正直お勧めしません
高いし、最低プランで5万通なので。amazon sesとかのほうがいいと思います(無料枠あるし。でも僕は承認されなかった)。mailgunも何かすごい部分があるのかもしれませんが..
設定ファイル settings.py
settings.pyで設定
env()はdjango-environです。共有するときに、見られたらいけないapi keyとかを別ファイルに書ける。gitignoreでそのファイルをgitから除外するとgithubとかで公開されない。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.mailgun.org' # MailgunのSMTPホスト
EMAIL_PORT = 587 # SMTPポート
EMAIL_USE_TLS = True
EMAIL_HOST_USER = env('EMAIL_HOST_USER') # postmaster@.... みたいなやつ 認証してないならpostmaster@sandbox...mailgun.orgみたいな
EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD') # MailgunのAPIキーかsmtpのパスワード
DEFAULT_FROM_EMAIL = 'email@infolink.dev' # 送信元メールアドレス
API
API keyは右上の自分のアカウントのドロップダウンメニューから api securityに行って、Mailgun API keysの add new keyからkeyを作成。
その時しかkeyはひょうじされないので、メモするか今すぐコードに書こう。忘れたら、新しいapi keyを作って、それを使う。
smtp
別に隠さなくてもいいと思うけど、一応。
sendingからdomain settingsへ行って、画像のように。
reset passwordで新しいkeyを取得。
smtpとapiの違い
smtpはアドレスごとで、apiはすべてのアドレスで使える。
サンドボックス環境から抜け出す
サンドボックス環境だと、自分のアカウントのメールアドレスにしか送れません。
送れるようにするには、独自ドメインとそれを認証しなければならない。
さっきの画像のdomainsで、add new domainでmg.yourdomainを入力。僕の場合、mg.infolink.dev。
サブドメインのほうがいいと言われたけど、なんでなのかはわからないです。
そのドメインをクリックして、使ってるレジストラーでtxtレコードなどを入力するだけ。どうすればいいかは書いてあるので、それに従ってレコードを追加してください。
domainsを押して、チェックマークがついていれば使えます。
infolinkで、間違った情報を知る
infolink.devを使えば、間違いが指摘されたときに通知を受け取れます
infolink.devの詳細
Discussion