Intento enviar un correo electrónico desde apache airflow usando AWS Simple Email Service (SES), y devuelve errores que no me ayudan a resolver el problema. Creo que es un problema de configuración dentro de SES, pero no estoy seguro de qué cambiar.
Información general:
Código DAG abreviado:
... from airflow.operators.email_operator import EmailOperator ... email_status = EmailOperator( task_id="sending_status_email", to="myverifiedemail@mydomain.com", subject="Test from SES", html_content="Trying to send an email from airflow through SES.", dag=dag ) ...Airflow.cfg Configuración de SMTP:
smtp_host = email-smtp.us-east-1.amazonaws.com smtp_starttls = True smtp_ssl = False smtp_user = AWSUSERKEY smtp_password = PASSWORDFROMAWSSMTP smtp_port = 587 smtp_mail_from = myverifiedemail@mydomain.comErrores recibidos al intentar varios cambios en la configuración de starttls, ssl y puerto.
ERROR - (554, b'Transaction failed: Unsupported encoding us_ascii.') ERROR - STARTTLS extension not supported by server. ERROR - (SSL: WRONG_VERSION_NUMBER) wrong version number (_ssl.c:852)No estoy seguro de los demás, pero nos encontramos con este error hoy:
ERROR - (554, b'Transaction failed: Unsupported encoding us_ascii.') Este es el valor predeterminado en el método __init__ de la clase, que no es válido: https://github.com/apache/airflow/blob/1.10.10/airflow/operators/email_operator.py#L63
Puede solucionarlo pasando un valor válido, como "utf-8":
email_status = EmailOperator( mime_charset='utf-8', task_id="sending_status_email", to="myverifiedemail@mydomain.com", subject="Test from SES", html_content="Trying to send an email from airflow through SES.", dag=dag )