Я не могу отправить электронное письмо с помощью 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

Попробуйте вернуть код ошибки для исключений и начать отладку с этого места.

... Похоже, это одна из тех программистских штучек, когда маленькие ошибки трудно уловить, пока кто-нибудь не найдет их за вас.

Вернуться на верх