Djangoでメールを送信する方法

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

このバックエンドは、メールを送信するフリをしますが、実際には何もしません。これはテストやデバッグの際に、実際のメール送信を避けるために使用されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です