Djangoで自作したアプリでGmailを扱う方法をまとめました。
目次
アプリパスワードを生成する
自作アプリでGmailを扱うにはアプリパスワードが必要です。
以下の手順で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
以下のようにメールが届くはずです。
以上!
コメント