#django #sendgrid #django-allauth
#django #sendgrid #django-allauth
Вопрос:
Я интегрировал sendgrid в свое приложение следующим образом:
SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY')
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey'
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = "from@example.com"
Я запускаю тест из manage.py оболочка, как показано ниже, и я получил тестовое электронное письмо.
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', 'from@example.com',
['to@example.com'])
На моем веб-сайте после нажатия кнопки «Забыть пароль» и заполнения зарегистрированного пользовательского электронного письма страница перенаправляется на страницу с сообщением «отправлено электронное письмо». Но я не получил никакого электронного письма. Нет информации об отладке, и я не могу понять, где что-то пошло не так.
Я на pythonanywhere, если это имеет значение. Я интегрировал allauth, чтобы пользователи могли входить в систему с помощью электронной почты вместо имени пользователя.
Комментарии:
1. Является ли ваша учетная запись на PythonAnywhere бесплатной? Бесплатные учетные записи имеют ограниченный доступ к службам электронной почты. См. help.pythonanywhere.com/pages/SMTPForFreeUsers
Ответ №1:
Я использую платную учетную запись на Pythonanywhere. Я нашел проблему. По какой-то причине интернет-провайдер отклонил электронное письмо. Когда я сменил учетную запись на другую электронную почту, все прошло нормально. Я понял это, увидев на панели управления sendgrid, что было сделано несколько запросов, но они не были доставлены.