2013-07-04 27 views
13

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

私はこれがまっすぐであると思って、単にstandard EMAIL_* fieldsを私のsettings.pyに記入してください。

はしかし、 私のsettings.pyとThunderbirdの両方で私の資格情報を入力した後、Thunderbirdはダウンロードしてメールを送信しますが、エラーと出てDjangoの時間ができます。同じことをしようとすると、「SMTPServerDisconnected接続が予期せず終了しました」。私の送信サーバー(SMTP)のためのThunderbirdで

私の作業の設定:私のDjangoのsettings.pyで

Server Name: oxmail.registrar-servers.com 
Port: 465 
User Name: [email protected] 
Authentication method: Normal password 
Connection Security: SSL/TLS 

私の非稼働の設定:

EMAIL_HOST = 'oxmail.registrar-servers.com' 
EMAIL_HOST_USER = '[email protected]' 
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 

同じで、これらの設定ではありませんか?私は間違って何をしていますか?他の人が失敗している間に1人はなぜ働くのですか?

+0

エラーメッセージを表示できますか? – Jingo

答えて

24

DjangoのデフォルトのSMTPバックエンドはSSLをサポートしておらず、自分のSMTPホストには(TLSだけでなく)SMTPが必要であることが判明しました。幸いにも、私はdirt-simple SSLバックエンドを見つけ、settings.pyにEMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'を追加しました。以下

+1

私はあなたに何とか評判のポイントを与えることができますか?これで、namecheapのSMTPサーバーに接続しようとする私の正気が保存されました。 – bchhun

+0

それはまだ動作します - 私はちょうどDjango 1.6.5と一緒に使用しました。 –

+0

は魅力のように動作します – blurrcat

3

設定:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'mail.yourdomain.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'password' 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 

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

関連する問題