djangoでWebサイトを作った時に、ユーザへの連絡や
入力フォームの確認などにメールを送る場合があります。
そのdjangoでのメールの送信方法を簡単に書いていきます。
最後に実際にGmailでメールを送るサンプルを書きます。
djangoでのメール送信
settings.py
settings.pyに以下を付け加えます。
gmailで送る場合はこんな感じになります。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'your_mailadress@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True
使うメールサービスによって、EMAIL_HOSTの部分が変わります。
使いたいメールサービス名と「smtp」で調べれば、必要なsmtpが出てきます。
ちなみに、smtpサーバに送信しない(メールを送らない)方法として
コンソールに出力する方法があります。以下に変更するとできます。
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
ここまでがsettings.pyです。
views.py
views.pyには以下のように書くとメールを送れます。
from django.core.mail import send_mail
def sendmail(request):
subject = " タイトル "
message = " これはメッセージです。 "
from_email = “your_mailadress@gmail.com”
to = [“to_mail@gmail.com”]
send_mail(subject, message, from_email, to)
return HttpResponce(‘メール送信完了’)
ここで重要なのはsend_mail()関数で、この関数でメールを送ります。
send_mail()の引数は(“件名”, “本文”, “送信者”, “宛先リスト”)です。
BCCを送るためにはEmailMessage()関数です。
from django.core.mail import EmailMessage
def sendmail(request):
subject = " タイトル "
message = " メッセージ "
from_email = "your_mailadress@gmail.com"
to = ["to_mail@gmail.com"]
bcc = ["bcc_mail@gmail.com"]
EmailMessage(subject, message, from_email, to, bcc).send()
EmailMessage()関数の引数は(“件名”, “本文”, “送信者”, “宛先リスト”, “BCC宛先リスト”)です。
EmailMessage().send()をつけると送信することができます。
Gmailでのメール送信サンプル
Gmailでのメール送信のサンプルを書いていきます。
Gmailを使いたい場合、パスワードを入手するために一手間必要です。
Gmailのパスワード開示方法
Gmailのパスワードの表示方法を順に追っていきます。
メールを送信したいアカウントにログインします。
ログイン後、「アカウントの管理」から以下のページに飛びます。

左側のタブの「セキュリティ」をクリックします。

下にスクロールすると「Googleへのログイン」があります。
そこのアプリパスワードをクリック。

パスワードを入力します。

パスワード入力後、アプリパスワードの画面になります。
「アプリを選択」から「その他(名前を入力)」を選択し、好きな名前を入れます。

するとアプリパスワードが生成されます。
このアプリパスワードをsettings.pyのEMAIL_HOST_PASSWORDに
入力するとメールを送ることができます。

Gmailのメール送信のサンプル
あとは上記のviews.pyを使い、コードを書いてメールを送ります。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'your_mailadress@gmail.com'
EMAIL_HOST_PASSWORD = 'lobsroahavpcsrdj'
EMAIL_USE_TLS = True
from django.core.mail import send_mail
def sendmail(request):
subject = ' タイトル '
message = ' これはメッセージです。'
from_email = 'your_mailadress@gmail.com'
to = ['to_mail@gmail.com']
send_mail(subject, message, from_email, to)
return HttpResponce('')
実際にGmailで送ってみるとこんな感じになります。

以上です。
参考までに
参考とした本です。