13

ホストされた SMTP アカウント (特に Namecheap) を使用して Django からメールを送信するにはどうすればよいですか?

これは簡単で、settings.py の標準の EMAIL_* フィールドに入力するだけでよいと思いました。

ただし、settings.py と Thunderbird の両方に資格情報を入力した後、Thunderbird は電子メールをダウンロードして送信できますが、同じことをしようとすると、Django は「SMTPServerDisconnected: 接続が予期せず閉じられました」というエラーでタイムアウトします。

送信サーバー (SMTP) の Thunderbird での作業設定:

Server Name: oxmail.registrar-servers.com
Port: 465
User Name: myuser@mydomain.com
Authentication method: Normal password
Connection Security: SSL/TLS

Django settings.py の動作しない設定:

EMAIL_HOST = 'oxmail.registrar-servers.com'
EMAIL_HOST_USER = 'myuser@mydomain.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

これらの設定は同一ではありませんか? 私は何を間違っていますか?一方が機能し、もう一方が失敗するのはなぜですか?

4

2 に答える 2

27

問題は、Django のデフォルトの SMTP バックエンドがSSL をサポートしておらず、SMTP ホストが (TLS だけでなく) SSL を必要としていたことでした。幸いなことに、非常にシンプルなSSL バックエンドを見つけEMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'て、settings.py に追加すると、すべてが機能しました。

于 2013-07-04T22:01:03.770 に答える
7

以下の設定:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'mail.yourdomain.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'no-reply@yourdomain.com'
EMAIL_HOST_PASSWORD = 'password'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

私のために働いた。テストしたdjangoのバージョンは1.8.8です。

于 2016-11-16T07:53:36.290 に答える