メールを送る方法を解説【Gmailを使います】

djangoのみならず、サービスの開発を進めていく中で、メールを送信するサービスを提供したいと思うことがありますよね。

そこで今回は、メールを送る方法を解説していきます。
メールを送るには2つのステップが必要です

まず、メールを送るために必要なことを整理していきましょう。

大きく分けて、2つのステップが必要です。
1. メール送信サーバーの設定

メールを送るには、メールを送るためのシステム(プログラム)がインストールされたサーバー(メールサーバー)を使う必要があります。

ちなみに、メールを送るサーバーはSMTPサーバーと呼ばれています。
2. SMTPサーバーを通じてメールを送るための設定

次に、メールサーバーを通じてメールを送るための設定をしていきます。

設定といっても、メールサーバーの情報と、送信アドレスやメール本文など数個の情報だけでメールが送れるようになりますので、心配しないでください。

次から、順番に設定を進めていきましょう。
メール送信サーバーの設定

まずは、メール送信サーバーの設定をしていきましょう。

この設定でやることは、djangoにメール送信サーバーの情報を伝えることです。

settings.pyファイルの中で設定をしていきましょう。

 コード

1 EMAIL_HOST = 'smtp.gmail.com'
2 EMAIL_PORT = 587
3 EMAIL_HOST_USER = 'gmailのアカウント名'
4 EMAIL_HOST_PASSWORD = 'gmailのパスワード'
5 EMAIL_USE_TLS = True

 コードの解説

(1) hostは、smtpサーバーのアドレスを指します。
この指定をすることで、smtp.gmail.comというドメインにあるメールサーバーを使ってメー  ルを送ります。ということをdjangoに伝えています。

(2) portはこのサーバーに接続するときのポートを指定しています。587というのはgmailが使っているポートですので、ほかのサーバーを使う場合はポート番号は異なる可能性があります。

(3) gmailのユーザー名です。gmailにログインするときに使うログイン名を入力します。

(4) gmailのパスワードです。gmailにログインするときに使うパスワードを入力します

(5) TLSとは、メールの文章を暗号化するかどうかを指定しています。gmailはデフォルトでTlSを使うように設定されていますので、この設定においてもTrueと指定しておきましょう。

(デフォルトではNoneになっています。)Small text.

これでメール送信サーバーの設定は完了です。

メールの送信設定

つぎに、メールを送るための設定をしていきましょう。

djangoでは、django.core.mailモジュールの中にメールを送るためのコードが格納されています。

今回は、メールを送るときに使われるsend_mailメソッドを使います。

実際のコードをみていきましょう。

 コード

from django.core.mail import send_mail
from django.http import HttpResponse
 def index(request): 
         subject = "題名"
         message = "本文"
         from_email = "送信元メールアドレス"
         recipient_list = [
         "送信先メールアドレス"
         ]
         send_mail(subject, message, from_email, recipient_list)
         return HttpResponse('メールを送信しました')


題名、本文、送信元メールアドレス、送信先メールアドレスを設定しただけですが、これでsettigns.pyに書いたメール送信サーバーに接続し、メールを送ってくれます。

~Django無料講義~のご案内


Code for Djangoが、4時間超の無料Django講義をはじめました
 
・本を出版したCode for Djangoの
 製作者が作ったサイトです。
 
・Code for Djangoの内容も、
 動画で詳しく解説しています。
 
・動画は順次ふやしていきますので、
 ただで学び続けることが可能です。
 
・Djangoの効率的なスキルアップに、
 是非お役立て下さい。


Created with