DjangoでGメールを送る方法

ノウハウ
スポンサーリンク

Djangoで自作したアプリでGmailを扱う方法をまとめました。

 

目次

 


 

アプリパスワードを生成する

自作アプリでGmailを扱うにはアプリパスワードが必要です。
以下の手順でGoogleアカウントと2段階認証を設定すれば取得できます。

手順一覧
  • Googleアカウントを作成
    ・アカウントの作成
    ・スマホのアプリでログインする
  • 2段階認証プロセスをオンにする
  • アプリパスワードを発行する

画像付きの手順をまとめたので、よろしければ以下のブログを参考にしてみてください。

Gメールのアプリパスワードの発行方法をまとめてみた
自作アプリでGmailを扱うにはアプリパスワードが必要です。この記事ではアプリパスワードを発行する方法をまとめました。

 

 

DjangoでSMTPの設定をする

Djangoの設定ファイル「setting.py」にGメールのSMTPサーバやアプリパスワードを設定します。

settings.py
# Mail
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'パスワード生成時に使用したGmailのメールアドレス'
EMAIL_HOST_PASSWORD = 'Googleで生成したパスワード'

参考:
[Django]Gmailのメールアドレスからメールを送信できるようにする

 

 

メールを送信してみる

せっかくなので、Gメールへの送信を確認しています。
ここでは、sendmailというコマンドを作成しようと思います。

 

事前準備 コマンド関連ファイルの作成

myappというアプリにコマンドを追加していきます。

 

コマンド実行
(Pjojectを作っていなかったら以下を実行)
$ django-admin startproject mysite .
(事前準備)
$ cd mysite
$ python manage.py startapp myapp
$ mkdir -p myapp/management/commands
$ touch myapp/management/commands/__init__.py
$ touch myapp/management/commands/sendmail.py
settings.py(追記)
INSTALLED_APPS = [
    ...
    'myapp.apps.MyappConfig'
]

 

コマンドファイルを作成

/myapp/management/commands/sendmail.py
from django.core.management.base import BaseCommand
from django.core.mail import send_mail

class Command(BaseCommand):
    help = "テストコマンド"

    def handle(self, *args, **options):
        send_mail('タイトル','Hello!! ' + options['name'],'送信元アドレス',['宛先アドレス'],fail_silently=False,)

    def add_arguments(self, parser):
        parser.add_argument('--name', nargs='?', default='', type=str)

send_mail('タイトル', '本文', '送信元アドレス', ['宛先アドレス'], fail_silently=False)

 

メールを送信してみる

コマンド実行
$ python manage.py sendmail --name shiguregaki

以下のようにメールが届くはずです。

 

 

以上!

コメント

タイトルとURLをコピーしました