目次
1. Djangoのメール設定を行う
既存のメールサーバーを使う場合
例:gmail
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com' # GmailのSMTPサーバー
EMAIL_PORT = 587 # Gmailで使用されるポート(TLS用)
EMAIL_HOST_USER = 'your-email@gmail.com' # Gmailアドレス
EMAIL_HOST_PASSWORD = 'your-email-password' # Gmailパスワードまたはアプリパスワード
EMAIL_USE_TLS = True # GmailではTLSを使用
自分でSMTPサーバーを設定する場合
例:Postfix
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost' # Postfixがローカルホスト上で動作している場合
EMAIL_PORT = 25 # Postfixの標準ポート
EMAIL_USE_TLS = False # ローカルホスト通信の場合、TLSは通常不要です
2. 送信をする
from django.core.mail import send_mail
send_mail(
'title',
'content',
'from@example.com',
['to@example.com'],
fail_silently=False,
)
EMAIL_BACKENDの一覧
django.core.mail.backends.smtp.EmailBackend
このバックエンドは、標準のSMTPプロトコルを使用してメールを送信します。これは最も一般的に使用されるメール送信方法で、Gmail、Yahoo Mail、企業のSMTPサーバーなど、多くのメールサービスプロバイダで動作します。
django.core.mail.backends.console.EmailBackend
このバックエンドは、実際にメールを送信する代わりに、コンソール(標準出力)にメールの内容を出力します。開発中にメール送信機能をテストする際に便利です。
django.core.mail.backends.filebased.EmailBackend
このバックエンドは、メールを実際のメールサーバーに送信する代わりに、ファイルシステム上の指定されたディレクトリにメールの内容を保存します。
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = '/path/to/your/emails' # メールを保存するディレクトリ
django.core.mail.backends.locmem.EmailBackend
このバックエンドは、メールをローカルメモリに保存します。これは主にテスト目的で使用されます。
django.core.mail.backends.dummy.EmailBackend
このバックエンドは、メールを送信するフリをしますが、実際には何もしません。これはテストやデバッグの際に、実際のメール送信を避けるために使用されます。