2009-03-03 18 views
12

Web sitemdeki kullanıcılardan e-posta göndermek için Gmail SMTP sunucusunu kullanıyorum. Bir kullanıcı bir e-posta göndermek istiyorsanızDjango e-posta

Bunlar bu ayarları geçersiz kılma ve yöntemleri gönderme Django'nın e-posta kullanarak e-posta gönderiyorum, benim settings.py

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'pwd' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 
SERVER_EMAIL = EMAIL_HOST_USER 
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER 

varsayılan ayarlardır. Sistemde bir istisna oluştuğunda, [email protected] adresinden bir e-posta alırım. Bazen giriş yapmış bir kullanıcıdan e-posta alırım. Bu, bir kullanıcı web sitemden gönderilen bir e-posta aldığında, gerçek kullanıcıdan farklı bir gönderilmiş bir adrese sahip olduğu anlamına da gelebilir.

Bu durumdan kaçınmak için ne yapılmalı? işlevlerini gönderme posta herhangi gönderen adresine olarak None veya boş dize geçerken

cevap

22

Django sadece settings.DEFAULT_FROM_EMAIL kullanır. Bu, django/core/mail.py'da doğrulanabilir.

Django hep settings.SERVER_EMAIL kullanır ve sadecesettings.ADMINS listelenen adreslere gönderilen olduğunu django/core/mail.py yılında mail_admins() işlevini çağıran bir işlenmeyen istisna bulunmaktadır. Bu ayrıca django/core/mail.py'da doğrulanabilir.

Django kendisi e-posta gönderir yalnızca başka yerde True settings.SEND_BROKEN_LINK_EMAILS ardından CommonMiddleware settings.MANAGERS ve e-posta gönderene listelenen tüm adreslere posta göndermek gibiyse genellikle settings.SERVER_EMAIL olduğunu.

Bu nedenle, düzenli bir kullanıcının sitenizden e-posta alacağı tek zamandır, send_mail() numaralı telefonu aradığınızda. Bu nedenle, her zaman from_mail argümanı olarak gerçek bir adresi iletin ve ayarlarından e-posta almayı engelleyen kullanıcılardan kaçınacaksınız.SERVER_EMAIL veya settings.DEFAULT_FROM_EMAIL.

Yan not: Django kayıt bunu böyle destek olarak uygun bir e-mail adresi olduğundan emin olmak gerekir bu gibi pek durumlarda settings.DEFAULT_FROM_EMAIL posta gönderecek bir Django Takılabilir en az bir örnektir @ yoursite.com veya [email protected]

+0

Yardım için teşekkürler. –