• メールを送る方法を解説【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になっています。)

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

    メールの送信設定

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

    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('<h1>メールを送信しました</h1>')

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

    ~Django無料講義~のご案内

    Code for Djangoが、4時間超の無料Django講義をはじめました

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