LoginSignup
2
0

More than 3 years have passed since last update.

djangoでGmailから登録完了メールを送ろうとしてみた。

Posted at

先日Djangoを学び始め、ユーザー登録機能の実装にtryしています。
Djangoで、メールを送信←概ねこちらの記事に則ってプログラムを書いています。
何度かエラーが出てしまったので、備忘録として残します。

TemplateDoesNotExist

最初に直面したのが上記のエラーでした。
ユーザー登録時に送信されるメールのタイトル・本文のテンプレートが見つからず、エラーになってしまいました。
下記の通りディレクトリを修正したところ解決しました。
mail_templatesフォルダもtemplatesの中に入れておかなければならなかったようです。

×修正前
users(アプリ名)
├mail_templates
| └create
|  └subject.txt(メールタイトルのテンプレート)
└templates

〇修正後
users
└templates
 └mail_templates
  └create
   └subject.txt(メールタイトルのテンプレート)

[WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。

拒否されてしまいました。
これは私のGmailから登録者へメールしようとしたにもかかわらず、プログラム中にGmailのユーザ名、パスワード等を書いていなかったのが原因でした。
settings.pyに下記の通り加筆したら解決しました。

settings.py
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'メアド'
EMAIL_HOST_PASSWORD = 'パスワード'
EMAIL_USE_TLS = True

SMTPAuthenticationError at /user_create/

続いては上記のエラーが生じるとともに、本プログラムで送信元として使用予定だったGmailから「誰かが不正ログインしようとしています」の注意喚起メールが届きました。
これはエラーに表示されていたGoogleのアドレスに飛び、安全性の低いアプリへのアクセスを有効にすることで解決しました。(安全性のしょぼいアプリでごめんね…)

BadHeaderError

使用していたAtomでファイル末尾に自動で改行が挿入されてしまうため、「改行できないsubject.txtが二行になっているよ!困った!」とエラーが発生してしまいました。
下記サイトを参考に、自動で改行する機能をストップして解決しました。
【Atom】ファイル末尾に自動改行させない設定

以上を解決したら無事にDjangoアプリを利用してメールを送信できました!わーい!

2
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
2
0