Как изменить адрес отправителя в электронной почте Django? - PullRequest
2 голосов
/ 27 сентября 2011

Как отмечалось в документации , настройка SERVER_EMAIL должна изменять адрес «От» в электронных письмах о сбоях, отправленных на ADMINS с сервера Django (1.3.1).

Но это не так.

Это работает для вас в 1.3.1? (Или любая версия Django)

Django настаивает на том, чтобы просто использовать мой EMAIL_HOST_USER - мой логин / фактический адрес электронной почты - в качестве адреса от. Я использую Gmail в качестве SMTP-сервера, поэтому мне интересно, может ли это быть как-то связано с этим. Gmail блокирует подобные вещи? Клянусь, я заставил это работать раньше.

Это немного раздражает, потому что у нас есть несколько проектов, которые, кажется, отправляют электронные письма с одного и того же адреса, и нам нужно изучить трассировку, чтобы увидеть, какой это проект.

Ответы [ 2 ]

3 голосов
/ 28 сентября 2011

Проблема в Gmail.Вплоть до библиотеки smtplib указан правильный адрес отправителя, и эта библиотека отправляет правильный адрес в Gmail.

Эта страница поддержки Gmail подразумевает (особенно близков нижней части «Примечание для пользователей POP / IMAP») вам необходимо добавить адрес в качестве «дополнительного адреса электронной почты» в настройках Gmail, чтобы иметь возможность отправлять почту с него через SMTP-серверы Gmail.

Это изкурс требует проверки;так как мой адрес отправителя не имеет почтового ящика (это фальшивка!), в настоящее время это невозможно для меня.Но, по крайней мере, это не ошибка Django!:)

(Примечание: для Gmail это довольно очевидный способ помешать вам спамить, я уверен, что именно поэтому они это делают.)

1 голос
/ 27 сентября 2011

Из того, что я вижу в коде (1.3.1), электронные письма трассировки стека отправляются с использованием метода mail_admins с SERVER_EMAIL, как указано с адреса:

mail = EmailMultiAlternatives(u'%s%s' % (settings.EMAIL_SUBJECT_PREFIX, subject),
                message, settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS],
                connection=connection)

Что определяется как:

class EmailMultiAlternatives(EmailMessage):
   [...]
   def __init__(self, subject='', body='', from_email=None, to=None, bcc=None,
            connection=None, attachments=None, headers=None, alternatives=None,
            cc=None):

Я бы предложил поместить вывод трассировки в EmailMultiAlternatives, чтобы убедиться, что используется правильный адрес электронной почты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...