Не отправляется электронная почта в AWS SES
Settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
EMAIL_HOST_USER = config('SMTP_USER')
EMAIL_HOST_PASSWORD = config('SMTP_PW')
EMAIL_PORT = 587
VERIFIED_IDENTITY = config('VERIFIED_IDENTITY')
У меня есть проверенный email в AWS SES, и я пытаюсь отправить сообщение. Я получаю отправленное сообщение каждый раз, когда использую контактную форму, но на самом деле сообщение не отправляется.
if 'contactForm' in request.POST:
#print('Contact form')
contact_form = ContactForm(request.POST)
if contact_form.is_valid():
contact_form.save()
email_subject = f'New contact {contact_form.cleaned_data["email"]}: {contact_form.cleaned_data["subject"]}'
email_message = contact_form.cleaned_data['message']
print(email_subject,email_message)
try:
send_mail(email_subject, email_message,settings.VERIFIED_IDENTITY,[settings.VERIFIED_IDENTITY])
except BadHeaderError:
print('bad')
По моему мнению, проблема может быть связана с записью DNS SPF. Смотрите ниже ссылку, связанную с этим.
"Запись sender policy framework (SPF) - это тип записи DNS TXT, в которой перечислены все серверы, уполномоченные отправлять электронную почту с определенного домена." https://www.cloudflare.com/learning/dns/dns-records/dns-spf-record/#:~:text=A%20sender%20policy%20framework%20(SPF,Domain%20Name%20System%20(DNS).
https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-spf.html
Для настройки SPF вы публикуете запись TXT в конфигурации DNS для вашего домена. Эта запись содержит список серверов, которым вы разрешаете отправлять электронную почту с вашего домена. Когда поставщик электронной почты получает сообщение от вашего домена, он проверяет записи DNS для вашего домена, чтобы убедиться, что письмо было отправлено с авторизованного сервера.
Приветствую, Эд.
