2013-07-04 19 views
13

Barındırılan bir SMTP hesabı (özel olarak Namecheap) kullanarak Django'dan e-posta nasıl gönderilir?Barındırılan SMTP aracılığıyla Django'dan e-posta gönderme

Bu durumun doğrudan olacağını ve yalnızca benim settings.py öğesinde standard EMAIL_* fields'u doldurmanın bir sorun olacağını düşündüm.

Ancak benim settings.py ve Thunderbird hem benim kimlik bilgilerini girdikten sonra, Thunderbird indirmek ve e-posta göndermek, ancak hata ile dışarı Django kez edebilirsiniz: aynı şeyi çalışırken "SMTPServerDisconnected Bağlantı beklenmedik bir şekilde kapandı". Giden sunucusu için Thunderbird

Benim uyguladığım ayarları (SMTP): Benim Django settings.py içinde

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

Benim olmayan çalışma ayarları:

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 

bu ayarlar aynı değil mi? Neyi yanlış yapıyorum? Biri diğeri başarısızken neden çalışır?

+0

Bir hata mesajı gösterebilir misiniz? – Jingo

cevap

24

Sorun, Django 'daki varsayılan SMTP arka ucunun SSL'u desteklememesi ve SMTP ana bilgisayarımın gerekli olması (yalnızca TLS değil) olduğu ortaya çıkıyor. Neyse ki, dirt-simple SSL arka ucunu buldum, EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend' benim settings.py'ye ekledim ve her şey yeni çalıştı. Aşağıda

+1

Size bir şekilde daha fazla itibar puanı verebilir miyim? Bu sadece namecheap'ın SMTP sunucusuna bağlanmaya çalışırken aklımı kurtardı. – bchhun

+0

bir yıl sonra hala çalışıyor - Ben sadece Django ile kullandım 1.6.5 –

+0

bir çekicilik gibi çalışıyor – blurrcat

3

ayarları:

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 

benim için çalıştı. Test ettiğim django versiyonum 1.8.8.

İlgili konular