AWSApprunner не может отправить электронную почту из django
Когда я пытаюсь отправить письмо из django, запущенного на экземпляре AWSAppRunner, экран некоторое время остается загруженным, а затем становится полностью белым. Если я открываю отладчик, то вижу сетевую ошибку 502: Origin checking failed {My DOMAIN APPEARED HERE } does not match any trusted origins.
I Forbidden (403) CSRF-проверка не удалась. Запрос прерван. Причина отказа: Origin checking failed does not match any trusted origins и я добавил эти полномочия, упомянутые на той странице стека (CSRF_TRUSTED_ORIGINS,CORS_ORIGIN_WHITELIST, CORS_ALLOWED_ORIGINS, SECURE_PROXY_SSL_HEADER), а затем получил эту ошибку. Проверка происхождения не удалась - null не соответствует ни одному доверенному происхождению.
У меня действительно есть токен CSFR в моем html {% csrf_token %}. Я знаю, что это электронная почта, потому что я закомментировал функцию send_email, и все работает, как ожидалось. Я проверил идентификаторы (с электронной почты и на электронную почту) в AWS SES. Я установил SES с помощью pip и добавил :
EMAIL_BACKEND = 'django_ses.SESBackend' AWS_SES_REGION_NAME = 'us-east-2' AWS_SES_REGION_ENDPOINT = 'email.us-east-2.amazonaws.com'
У меня также есть ключ доступа, я смог отправить письмо, используя мой localhost (мой собственный компьютер, на котором запущен python manage.py runserver). Я разрешил все входящие и исходящие трафики для группы безопасности.
Что еще я могу попробовать?
def nuevaorden_view(request):
if request.method == "POST":
try:
nombre = request.POST.get("nombre")
email = request.POST.get("email")
telefono = request.POST.get("telefono")
TipoDeServicio = request.POST.get("TipoDeServicio")
ServiciosCombinados = request.POST.getlist("ServiciosCombinados")
FrecuenciaDeServicio = request.POST.get("FrecuenciaDeServicio")
Description = request.POST.get("Description")
CiudadOrigen = request.POST.get("CiudadOrigen")
PaisOrigen = request.POST.get("PaisOrigen")
CodigoPostalOrigen = request.POST.get("CodigoPostalOrigen")
CiudadDestino = request.POST.get("CiudadDestino")
PaisDestino = request.POST.get("PaisDestino")
CodigoPostalDestino = request.POST.get("CodigoPostalDestino")
Status = 'Orden Abierta'
Carrier = 'CorreKaminos'
orden = NuevaOrden(
nombre=nombre,
email=email,
telefono=telefono,
TipoDeServicio=TipoDeServicio,
ServiciosCombinados=ServiciosCombinados,
FrecuenciaDeServicio=FrecuenciaDeServicio,
Description=Description,
CiudadOrigen=CiudadOrigen,
PaisOrigen=PaisOrigen,
CodigoPostalOrigen=CodigoPostalOrigen,
CiudadDestino=CiudadDestino,
PaisDestino=PaisDestino,
CodigoPostalDestino=CodigoPostalDestino,
Status=Status,
Carrier=Carrier
)
try:
orden.save()
except Exception as e:
print(e)
# Save the instance to the database
try:
mail_subject = "Nueva orden"
message = ('Una nueva orden ha sido creada.')
from_email = "IvanGonzalez@correkaminos.com"
to_email = ['carlosugartechea@correkaminos.com']
send_mail(mail_subject, message, from_email, to_email, fail_silently=False)
messages.success(request, "La orden se ha creado correctamente.")
return render(request, "ordenes/ordenregistrada.html")
except Exception as e:
# Handle other exceptions (e.g., email sending failure)
print(e)
return render(request, "ordenes/nuevaorden.html")
except Exception as e:
print(e)
return render(request, "ordenes/nuevaorden.html")