DjangoでGmail送信機能実装

カテゴリ:Pythonの話

公開日:2020.09.28 最終更新日:2020.11.18
このエントリーをはてなブックマークに追加

今回はGmailのsmtpを使用してメール送信機能を実装します。

環境

  • Python 3.7.7
  • Django 3.0.7

目次

Googleのアカウント設定

Googleでアカウントのセキュリティを設定する必要があります。

2段階認証を設定されてる方は解除しなくてはなりません。下記のリンクで解除を行ってください。

https://support.google.com/accounts/answer/185839?co=GENIE.Platform%3DDesktop&hl=ja

次にこちらからアプリのアクセスを許可にします。

Djangoのメール設定

ログイン機能はこちらの過去の記事からできます。

settings.pyにgmailのsmtpを使用する設定を書きます

urls.py

forms.py

views.py

テンプレートでメール本文作成

次はテンプレートでメールの内容を書いていきます。

まずはタイトル用のテンプレートです。

templates/registration/mail_template/password_reset/subject.txt

こちらは内容になります。

templates/registration/mail_template/password_reset/message.txt

中の変数の記述はDjango側で勝手に作ってくれるので、そのままの書き写しで問題ないです。

ユーザーに送信するメールアドレスのページです。ユーザーのデータがDBに入っていたら、そのユーザーにメールが届くようになります。こちらはお使いのログインページに応じて変更してみてください。

templates/registration/password_refresh.html

メール送信を表示するページです。

templates/registration/password_reset_finish.html

メールのurlから飛んで、パスワード再設定のページ。

templates/registration/password_reset_check.html

変更完了の表示ページ。

templates/registration/password_reset_result.html

以上でメール送信の記述は完了です。

おわりに

設定さえ上手くいけばメールの送信機能もDjangoが自動で行ってくれるので大変便利です。ログイン機能を作った際には是非とも活用してみてください。

一覧へ戻る