Электронная почта Django

Я использую SMTP-сервер Gmail для отправки электронной почты от пользователей моего веб-сайта.

Это настройки по умолчанию в моих 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 

Если я хочу, чтобы пользователь отправил электронное письмо, я переопределяю эти параметры и отправляю электронное письмо с помощью методов отправки электронной почты Django. Когда в системе возникает исключение, я получаю электронное письмо с example@example.com. Иногда я получаю электронное письмо от какого-либо зарегистрированного пользователя. Это также может означать, что когда пользователь получает электронное письмо, отправленное с моего сайта, он имеет адрес, отличный от фактического пользователя.

Что нужно сделать, чтобы избежать этой ситуации?

One Solution collect form web for “Электронная почта Django”

Django использует только настройки.DEFAULT_FROM_EMAIL, когда любая из функций отправки почты передает None или пустую строку в качестве адреса отправителя . Это можно проверить в django/core/mail.py

Когда есть необработанное исключение, Django вызывает mail_admins() в django/core/mail.py которая всегда использует settings.SERVER_EMAIL и отправляется только на адреса, указанные в настройках . django/core/mail.py . Это также можно проверить в django/core/mail.py

Единственное другое место, которое Django отправляет по электронной почте, – это настройки settings.SEND_BROKEN_LINK_EMAILS – True, тогда CommonMiddleware отправит почту всем адресам, указанным в настройках. MANAGERS и отправителем электронной почты являются settings.SERVER_EMAIL .

Поэтому единственный раз, когда обычный пользователь получает электронную почту с вашего сайта, вы звоните по send_mail() . Поэтому всегда передавайте реальный адрес в качестве аргумента from_mail и вы избегаете использования пользователями электронной почты из настроек . from_mail или settings.DEFAULT_FROM_EMAIL .

Замечание: django-registration – это, по крайней мере, один пример подключаемого Django, который отправит почту из настроек.DEFAULT_FROM_EMAIL, поэтому в таких случаях вам нужно убедиться, что это правильный адрес электронной почты, такой как support@yoursite.com или веб-мастер @ yoursite.com.

  • Индикатор выполнения TTK блокируется при отправке электронной почты
  • Настройка другого ответа на сообщение в Python email / smtplib
  • Python: как я могу получить доступ к почтовому ящику Lotus Notes 8.5 для чтения писем
  • Как сопоставить сегодняшнюю дату в фрейме данных и отправлять сообщения электронной почты
  • Разбор mbox-файлов в Python
  • Ошибка SSL при отправке электронной почты с помощью Python (ОС Raspbian)
  • Проверка электронной почты с помощью WTForm с использованием фляжки
  • Как сохранить вложение из Outlook с помощью win32com.client в Python?
  •  
    Interesting Posts for Van-Lav

    Tastypie: Как я могу заполнить ресурс без базы данных?

    `deepcopy ()` чрезвычайно медленный

    Лучший способ обнаружения IronPython

    Глобальная интеграция приложений SAPE с Babel

    Многопроцессорность Python – Pool.map работает только с одной задачей (вместо нескольких)

    Как показать параметры параметров запроса в Django REST Framework – Swagger

    Преобразование строки (с научной нотацией) в int в Python

    Как установить тайм-аут по умолчанию для Selenium Python WebDriver?

    python: urllib2 как отправить cookie с запросом urlopen

    Поверните строку с вложенными скобками во вложенный список, python

    Как создать пространство имен Python (значение argparse.parse_args)?

    Построение векторных полей двумя разными способами (колчан / поток), в результате чего не совпадают графики – Matplotlib

    Scrapy Spider: перезапустите паук, когда закончите

    SVG-рендеринг в приложении PyGame

    Django / python Как получить список идентификаторов из списка объектов

    Python - лучший язык программирования в мире.