Что у меня есть:
- Домен, купленный на webs.com (назову его contoso.com);
- Учетная запись Office 365подключен к этому домену (мой адрес электронной почты похож на
john@contoso.com
); - Приложение Django, размещенное в Azure;
Что я хочу:
Я хотел бы настроить Django для отправки электронных писем, используя мой john@contoso.com
адрес.
Что я сделал:
Я пробовал это Djangoконфигурация:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.office365.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'john@contoso.com'
EMAIL_HOST_PASSWORD = 'xxxxxx'
, но это не сработало. Итак, просто для проверки я попробовал бесплатный SMTP-сервер Google:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'john@gmail.com'
EMAIL_HOST_PASSWORD = 'yyyyyy'
На этот раз он работает, но, очевидно, электронное письмо отправляется с john@gmail.com
, а не с john@contoso.com
.
Что не так в предыдущей конфигурации? Или, может быть, мне нужно внести некоторые изменения в свою учетную запись Office 365?
Обновление
До сих пор я пытался получать электронные письма, устанавливая переменную ADMINS в Django следующим образом:
ADMINS = [('Admin Name', 'admin@gmail.com')]
И затем я отправляю электронное письмо, используя объект регистрации:
logging.error("Hello admin!!")
Как уже говорилось, это работает только тогда, когда я использую smtp.gmail.com
. Сегодня я попытался использовать функцию send_mail
:
send_mail(
'Subject here',
'Here is the message.',
'john@gmail.com',
['mail@gmail.com'],
fail_silently=False,
)
И она работает как с использованием конфигурации smtp.gmail.com
и smtp.office365.com
. К сожалению, это не может быть правильным решением для меня, так как мне нужно уведомить администратора в случае ошибки или исключения. Итак, почему функция send_mail
работает с smtp.office365.com
, а настройка ADMIN
- нет?