Frage

Ich bin mit dem Google Mail SMTP-Server E-Mails von Nutzern von meiner Website zu senden.

Dies sind die Standardeinstellungen in meinem settings.py

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'example@example.com'
EMAIL_HOST_PASSWORD = 'pwd'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

Wenn ich ein Benutzer möchte eine E-Mail schicken, ich bin überschreiben diese Einstellungen und sendet die E-Mail Django E-Mail unter Verwendung von Sendemethoden. Wenn eine Ausnahme in dem System auftritt, erhalte ich eine E-Mail vom example@example.com. Manchmal erhalte ich eine E-Mail von einigen angemeldeten Benutzer. Welches auch möglicherweise könnte bedeuten, dass, wenn ein Benutzer erhält eine E-Mail von meiner Website gesendet hat eine gesendete Adresse unterscheidet sich von der tatsächlichen Benutzer.

Was sollte getan werden, diese Situation zu vermeiden?

War es hilfreich?

Lösung

Django nur verwendet settings.DEFAULT_FROM_EMAIL , wenn eine der Mail-Funktionen Senden passiert None oder leere Zeichenkette als Absenderadresse . Dies kann in django/core/mail.py prüft werden.

Wenn es eine nicht behandelte Ausnahme Django die mail_admins() Funktion in django/core/mail.py ruft die immer verwendet settings.SERVER_EMAIL und nur an Adressen gesendet aufgelistet in settings.ADMINS . Dies kann auch in django/core/mail.py prüft werden.

Der einzige andere Ort Django selbst E-Mails sendet, wenn settings.SEND_BROKEN_LINK_EMAILS True ist, dann wird CommonMiddleware Mail in settings.MANAGERS aufgelistet an alle Adressen senden und die E-Mail-Absender ist settings.SERVER_EMAIL .

Daher ist das einzig Mal, wenn ein normaler Benutzer E-Mail von Ihrer Website erhalten, wenn Sie send_mail() nennen. Also, immer eine reale Adresse als from_mail Argument übergeben und Sie werden Benutzer vermeiden Empfang E-Mail von settings.SERVER_EMAIL oder settings.DEFAULT_FROM_EMAIL .

Side Hinweis: django-Registrierung mindestens ein Beispiel eines Django steckbar ist, dass E-Mails von senden settings.DEFAULT_FROM_EMAIL so in Fällen wie diesem müssen Sie sicherstellen, dass es eine richtige E-Mail ist Adresse wie support@yoursite.com oder webmaster@yoursite.com.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top