2021.02.04  

Djangoでgmailを送信する

Django    


Djangoでgmailを送信する方法を説明します。

普通にDjangoでメール送信プログラムを書くだけだと、googleのセキュリティにはじかれてしまうため、gmailでいくつか設定を行う必要があります。

gmailの設定

  1. まず、メール送信用のgmailアドレスを用意します。
  2. gmailにログインして自分のアイコンをクリックし、「google アカウント管理」を選択します。
  3. 左側の項目一覧から「セキュリティ」をクリックします。
  4. 2段階認証プロセスをクリックし、画面の指示に従い有効にします。
  5. 前のページに戻り、「アプリ パスワード」をクリックします。
  6. 端末を選択からその他(名前を入力)を選択し、任意の名前を入力します。
  7. 「生成されたアプリ パスワード」という画面が表示されたら、16桁のアルファベットが表示されるので、こちらをメモしておきます。

Djangoの設定

今度はDjango側の設定です。
settings.pyに以下のコードを書きます。
ここで先程メモしたパスワードを使用します。

settings.py
# メール送信設定
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '先程設定を行ったgmailアドレス'
EMAIL_HOST_PASSWORD = '先程メモしたパスワード'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

次にviews.pyへ以下のコードを書きます。
コードはviews.pyの中でメール送信を実行したいところに書いてください。

views.py
send_mail('タイトル', '本文', '送信元アドレス', ['宛先アドレス'], fail_silently=False)

下記の例では、DBにデータが保存されたタイミングでメール通知を行っています。

class CommentViewListPage(generic.CreateView):
     model = Comment
     form_class = CommentCreateForm

     def form_valid(self, form):
         # commentのformに入力された内容をDBに保存する
         form.save()
         # コメントが
         send_mail('FYblogDB更新通知', 'DBが更新されました。', 'hogehoge@gmail.com', ['hogehoge@gmail.com'], fail_silently=False)
         # Topページに戻る
         return redirect('/')

これで、send_mailが実行されると、メールが送信されるようになります。

コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信