1. ホーム
  2. python

[解決済み] Djangoでメールを送信する方法は?

2022-04-23 04:48:21

質問

私の settings.py は、以下の通りです。

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

# Host for sending e-mail.
EMAIL_HOST = 'localhost'

# Port for sending e-mail.
EMAIL_PORT = 1025

# Optional SMTP authentication information for EMAIL_HOST.
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False

私のメールコード

from django.core.mail import EmailMessage
email = EmailMessage('Hello', 'World', to=['[email protected]'])
email.send()

もちろん、デバッグ用サーバーを python -m smtpd -n -c DebuggingServer localhost:1025 ターミナルでメールを見ることができます。

しかし、実際にメールをデバッグサーバーではなく、[email protected] に送るにはどうすればよいのでしょうか?

皆さんの回答を読んで、はっきりさせたいことがあります。

  1. localhost(ubuntuの簡易PC)でメール送信はできないのでしょうか?

  2. django 1.3 で思ったのですが send_mail() はやや非推奨で EmailMessage.send() が代わりに使われるのですか?

解決方法は?

実際のSMTPサーバーにメールを送信する。もし、自分で設定したくない場合は、Googleなど、SMTPサーバーを運用してくれる会社を探すとよいでしょう。