Email概要メールをコンソールに表示するメールの設定メール送信処理の基本Userモデルのemail_userメソッドEmailMessageでの柔軟なメール送信テンプレートファイルを使った送信デフォルトのメールアドレスを設定する参考リンク概要Djangoでメールを送信する処理というのは割とあります。ユーザーや管理者に何らかのお知らせを送りたいとか、パスワードを忘れた場合とか、会員登録時にアカウントを有効化するのに使う等、様々な例があります。私のブログも、ブログ購読やコメントの際にメールを送信しています。Djangoでは簡単にメールを送れますので、紹介していきます。メールをコンソールに表示するsettings.pyに以下を追加します。'django.core.mail.backends.console.EmailBackend'これはメールを実際には送らずに、コンソールに表示してくれる設定です。したテストに重宝します。ちなみにですが、次のようにするとメールを実際に送信します。Djangoのデフォルトでは、こちらが設定されています。'django.core.mail.backends.smtp.EmailBackend'settings.pyを分けている場合なんかで、開発環境のconsole.EmailBackendを上書きしたい場合に有効です。次の例は、Gmailを使ってメールを送信する設定です。Gmailに限らず、大体こんな感じになります。True他のメールサーバや、自分のメールサーバを利用する場合は適宜書き換えてください。Gmailで上手く送信できない場合は、二段回認証を利用しましょう。その場合、PASSWORD部分がアカウントのパスではなく、発行されたパスワードを使うことになります。指定し、send_mail()を呼ぶことになります。recipient_list)非常に簡単ですね。messageの\nは、改行を意味します。ちなみにですが題名には改行を入れれないので、注意してください。Userモデルのemail_userメソッドUserモデルに定義されているemail_userというメソッドを使用することもできます。Userにはメールアドレスのフィールドがありますが、そのアドレスに対してメールが送信されます。メールの送信EmailMessageでの柔軟なメール送信send_mail()は簡単なメールに使うためのもので、bccやファイル添付をしたい場合、EmailMessageというクラスを利用する必要があります。bcc)email.send()ちなみにですが、Toを空欄にしつつBccだけ指定することも可能です。このブログではコメントに返信があればコメント者にメールを送りますが、BCCには私を、Toにはコメント者...もしくは、メールアドレス空欄だったらToが空欄、という感じでメールを送信しています。テンプレートファイルを使った送信テンプレートファイルを使って本文を組み立てる、というのもよくやります。recipient_list)こうした特殊なテンプレートファイルは、mails等といったディレクトリを作ってその中に入れておくとわかりやすいでしょう。中身ですが、当然普通のテンプレートファイルとして書けます。%}あなたは管理者です。%}デフォルトのメールアドレスを設定するメールアドレスをべた書きするのではなく、変数として管理したいと思うかもしれません。Djangoのデフォルトsettingsには幾つかメールアドレスを記入する場所があるのですが、デフォルトのメールアドレスならば次の属性があります。'toritoritorina@gmail.com'メール送信の幾つかの処理では、from_email引数(送信元のメールアドレス)がない場合にこの属性が使われます。DEFAULT_FROM_EMAILを設定しておく方が安心です。利用する際は次のように。PostsDjango、メールで更新を通知Djangoで、Webサイトの更新情報を通知するシリーズの一つです。メールで、Webサイトの更新情報を通知していきます。Djangoブログのコメント・返信ページを作るDjangoで、ブログを作るシリーズ1の1つです。ブログのコメント・返信ページを作っていきます。週間前いつもブログ拝見させて頂いております。「Djangoで、会員登録機能を自作する」でパスワード忘れの再設定メールの受信をしたいと思い、こちらの記事を参考にさせてもらいました。メールの受信がうまくいかないようで、メールの送信方法についてお伺いしたいと思い、ご連絡させて頂きました。関数mail1を書き換えて、「Djangoで会員登録機能を自作する」のviews.pyの一番下に、以下のように書き加えたのですが、メール受信ができませんでした。'register/password_reset_done.html')「Djangoで会員登録機能を自作する」のviews.pyのPasswordResetDoneクラスやPasswordResetにmail1関数を組み込んだりもしましたが、上手くいきませんでした。mail1関数は自作した関数なので、どこかで呼び出す必要があるのでしょうか?ご教示よろしくお願い致します。「Djangoで会員登録機能を自作する」は、既にメールを送るための設定がされています。必要なのはsettings.pyの書き換えだけです。Gmailで送信する場合は、以下のような感じ。console.EmailBackendを取り消す。週間前ご回答ありがとうございます。settings.pyに以下のように追加したのですが、新規会員登録のフォーム送信時に「SMTPAuthentificationError」というエラーが出てしまいました。Trueメールアドレスはgmail.comではなく、icloud.comを使用しました。Googleアカウントでアプリパスワードを作る必要があり、そのパスワードをsettings.pyに入力することで送信できました。日前いつも参考にさせて頂いております。お手すきの際にコメントいただけますと幸いでございます。時間前Djangoの機能を素直に使っていれば、ヘッダインジェクションやCSRFなどの基本的な問題は避けれそうです。スクリプトや連続投稿の対策に、reCAPTCHA等の導入もする必要があると思います。メールの送信サーバーを自前で用意すると大変と聞きますが、そういったことはせず既存のサービスを利用し、サーバーのHTTPS対応といった基本的なことをしていれば、ある程度は大丈夫じゃないでしょうか。私がやるのも大体この辺りまでの作業です。時間前ご回答ありがとうございます。参考にさせていただきます。幾つかの方法で、ブログの更新を受け取れます。