Я не могу отправить электронное письмо с помощью aws-ses с помощью python
setting.py =
EMAIL_BACKEND = 'django_amazon_ses.EmailBackend'
AWS_SES_REGION = env('AWS_SES_REGION')
AWS_SES_SENDER_MAIL = env('AWS_SES_SENDER_MAIL')
AWS_SES_SENDER = env('AWS_SES_SENDER')
AWS_ACCESS_KEY = env('AWS_ACCESS_KEY')
AWS_KEY_ID = env('AWS_KEY_ID')
views.py =
try:
subject = f"Registration Confirmation for {event.title}"
message = f"""
Hello {request.user.username},
You have successfully registered for the event: {event.title}
Event Details:
Date: {event.date}
Location: {event.location}
Description: {event.description}
Thank you for joining!
"""
send_mail(
subject,
message,
settings.AWS_SES_SENDER_MAIL,
[request.user.email],
fail_silently=False
)
return Response({
'message': 'Event joined and email sent.',
'email_status': 'sent'
}, status=status.HTTP_200_OK)
except Exception as e:
return Response({
'message': 'Event joined but email could not be sent.',
'email_error': str(e)
}, status=status.HTTP_200_OK)
else:
return Response({'error': 'Event member limit reached. Cannot join.'},
status=status.HTTP_406_NOT_ACCEPTABLE)
Я пытаюсь отправить электронное письмо, когда функция запускается в views.py. Я получаю HTTP 200, хотя в коде нет проблем, письмо не доставляется, но я не получаю никаких ошибок Может ли кто-нибудь помочь?
Получение кода ответа 200 при неожиданном поведении (письмо не доставлено) должно быть связано с HTTP_200_OK
, которое вы возвращаете в исключение.
return Response({
'message': 'Event joined and email sent.',
'email_status': 'sent'
}, status=status.HTTP_200_OK) # <- success
except Exception as e:
return Response({
'message': 'Event joined but email could not be sent.',
'email_error': str(e)
}, status=status.HTTP_200_OK) # <- fail
Попробуйте вернуть код ошибки для исключений и начать отладку с этого места.
... Похоже, это одна из тех программистских штучек, когда маленькие ошибки трудно уловить, пока кто-нибудь не найдет их за вас.