es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El envío de correo electrónico desde la aplicación Django falla en AWS SES.

Estoy intentando enviar correo usando SES y ya configuré la configuración de correo. Ahora SES está funcionando en modo de producción, no en el entorno de pruebas. Pero en mi aplicación Django, cuando intento enviar el correo, no sucede nada. Solo sigue intentando enviar y no muestra ningún error.

En el archivo setting.py realicé la configuración.

INSTALLED_APPS = [
  'django_ses',
]

EMAIL_BACKEND = 'django_ses.SESBackend'
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_SES_REGION_NAME = 'ap-northeast-1'
AWS_SES_REGION_ENDPOINT = 'email-smtp.ap-northeast-1.amazonaws.com'

Y el método de correo electrónico.

def send_mail(request, user, emails, subject, path):
  current_site = get_current_site(request)
  message = render_to_string(f"store/emails/{path}.html", {
    "some": "context"
  })

  send_email = EmailMessage(subject, message, "info@mydomain.com", to=emails)
  send_email.send()

Por cierto, ya verifiqué el correo info@mydomain.com en la consola de SES. Y cuando intento enviar un correo desde la consola de SES usando la opción enviar correo de prueba, puedo enviarlo sin ningún problema. Pero en mi aplicación Django no puedo.

¿Hay alguna otra configuración que deba hacer? Porque no puedo ver ningún error que aparezca cuando intento enviar el correo. Solo sigue intentando enviar, pero no puede hacerlo.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, puede haber algunas cosas que podrían estar causando el problema. Aquí hay algunas recomendaciones:

    1. Verifica la configuración de tu correo electrónico:
      Asegúrate de que la configuración de tu correo electrónico esté correctamente configurada en tu proyecto Django. Verifica que los correos electrónicos se estén enviando a las direcciones de correo electrónico correctas y que no haya errores tipográficos en las direcciones de correo electrónico.
    2. Verifica tus credenciales de AWS:
      Comprueba que tus claves de acceso a AWS y claves de acceso secretas sean correctas y que coincidan con las claves que proporcionaste a las variables AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY en tu archivo settings.py.

    3. Verifica la configuración de SES:
      Ve a tu consola de SES y verifica la configuración de SES. Asegúrate de haber verificado la dirección de correo electrónico que se utiliza para enviar el correo electrónico desde tu aplicación Django. Además, comprueba que tu cuenta de SES ya no esté en modo de sandbox, ya que el modo de sandbox de SES solo permite enviar correos electrónicos a direcciones de correo electrónico verificadas.

    4. Utiliza el método send_mass_mail:
      Intenta usar el método send_mass_mail en lugar de la clase EmailMessage para enviar correos electrónicos. El método send_mass_mail puede enviar mensajes en lotes, lo que podría ayudar a reducir la carga en el servidor de correo electrónico.

    5. Verifica los registros de correo electrónico:
      Habilita el registro de correo electrónico en tu proyecto Django para ayudarte a identificar la causa raíz del problema. Puedes configurar el registro de correo electrónico en tu proyecto Django agregando lo siguiente a tu archivo settings.py:

      LOGGING = {
          'version': 1,
          'disable_existing_loggers': False,
          'handlers': {
              'mail_admins': {
                  'level': 'WARNING',
                  'class': 'django.utils.log.AdminEmailHandler'
              }
          },
          'loggers': {
              'django.request': {
                  'handlers': ['mail_admins'],
                  'level': 'ERROR',
                  'propagate': True,
              },
          },
      }
      

    Esto enviará un correo electrónico al administrador del sitio cada vez que ocurra un error durante el envío de correos electrónicos.

    Espero que las recomendaciones anteriores puedan ayudar a resolver el problema.

Comments are closed.