Электронная почта Django не отправляется — ошибки нет, но сообщения не приходят (при использовании Gmail SMTP)
Я пытаюсь отправлять электронные письма из моего проекта Django, используя SMTP-сервер Gmail. Сервер работает без каких—либо ошибок, и мой код выполняется успешно, но электронные письма никогда не доходят до получателя - даже в папку "спам".
Я включил двухэтапную верификацию в своей учетной записи Gmail и сгенерировал пароль приложения специально для этого проекта, но это по-прежнему не работает.
Я хочу понять, почему Django считает, что электронное письмо было отправлено, но на самом деле оно так и не пришло.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_HOST_USER = 'mygmail@gmail.com'
EMAIL_HOST_PASSWORD = 'my-16-digit-app-password'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
я ожидал, что получатель получит электронное письмо. но на самом деле электронное письмо так и не пришло, и никаких ошибок не возникло.
Я помню, что если вы отправляете от mygmail@gmail.com, но ваш заголовок "От" или отправитель конверта отличается (например, другой домен), Gmail может автоматически удалить сообщение.
Попробуйте отправить вот так:
from django.core.mail import send_mail
send_mail(
subject='Test Email',
message='This is a test.',
from_email='mygmail@gmail.com', # must match EMAIL_HOST_USER
recipient_list=['recipient@example.com'],
fail_silently=False, # IMPORTANT for debugging
)
Для устранения неполадок с электронной почтой в Django вы можете временно переключиться на серверную часть консоли:
# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
При этом выводится полное необработанное электронное сообщение, которое Django отправил бы на вашу консоль. Проверьте правильность заголовков От, До и Тема, прежде чем переключаться обратно на серверную часть SMTP .