En la mayoría de los casos necesitamos enviar correos a nuestros suscriptores o clientes de nuestro sitio web u aplicación, por lo que vemos la necesidad de configurar un servicio de SMTP para tener la certeza de que nuestros correos van hacer bien entregados.
Un servicio de este tipo puede ser costoso, pero con Amazon AWS SES es relativamente barato, ya que por cada 10.000 correos enviados, nos cuenta solo $1USD y $1.2USD por GB ajunto. En el caso de que tengamos una instancia EC2 en AWS, tenemos la posibilidad de enviar 62.000 correos gratis, para mayor referencia (https://aws.amazon.com/es/ses/pricing/).
Vamos a realizar la configuración desde cero, para que tengan en cuenta como se realiza todo el proceso de configuración y sea de utilidad para todas las personas que lean este articulo. La limitación que tiene AWS SES, es que no podemos enviar correos que no tengamos verificado, por lo que tenemos tenemos que gestionar un ticket en AWS, en donde explicamos con detalle: para que vamos a usar el servicio AWS SES. AWS hace la verificación del ticket, con el fin de evitar problemas de SPAM y listas negras de sus IPs públicas.
Ingresamos a AWS y en servicios buscamos Simple Email Service.

Vamos a inscribir dos correos para realizar las pruebas con Postfix y Swaks, por lo que en el menú izquierdo, buscamos Email Addresses. Después le damos en el botón Verify a New email address. Vamos a verificar dos correos, con el fin de evitar el ticket que solicita AWS para enviar a destinatarios nos verificados.

Agregamos las cuentas de correo que vamos utilizar para pruebas.

Vamos al menú STMP Settings en donde vamos a agregar el usuario IAM que nos permite realizar envíos por medio del API AWS. Seleccionamos el Botón Create My SMTP Credentials.

Agregamos un nombre de usuario que podamos identificar en el IAM y seleccionamos el botón Create. Nos va ha generar unas credenciales.

Vamos que en STMP Settings tenemos la conexión del servidor SMTP de AWS que nos entrega SES.

Vamos hacer una prueba con Swaks para validar de que no tengamos problemas con AWS SES. Con el siguiente comando podemos realizar un envío con contenido cifrado y el puerto 587. Creamos un documento (prueba.txt) donde agregamos el cuerpo o el mensaje del correo.

# swaks -server email-smtp.us-east-1.amazonaws.com:587 -tls --auth-user <USUARIO-SMTP> --auth-password <CONTRASEÑA-SMTP> --to destinatario1@prueba.co --from remitente@prueba.co --body prueba.txt --header "Subject: Prueba AWS Amazon SES"
Los correos destinatario1@prueba.co y remitente@prueba.co son los que agregamos en Amazon SES. Validamos de que nos aya llegado el correo.

Lo que esta sombreado en rojo, es la prueba de que llego desde AWS SES. Ahora vamos hacer la configuración de Postfix.
# nano /etc/postfix/main.cf relayhost = [email-smtp.us-east-1.amazonaws.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_CAfile = /etc/ssl/certs/thawte_Primary_Root_CA.pem smtp_use_tls = yes smtp_generic_maps = hash:/etc/postfix/generic # echo [email-smtp.us-east-1.amazonaws.com]:587 <USUARIO-SMTP>:<CONTRASEÑA-SMTP> > /etc/postfix/sasl_passwd # postmap /etc/postfix/sasl_passwd # chmod 400 /etc/postfix/sasl_passwd # nano /etc/postfix/generic <USUARIO-LINUX>@<NOMBRE-PC> remitente@prueba.co # postmap /etc/postfix/generic # service postfix restart
Con esto, ya tenemos configurado Postfix, para que realice el envío de todos los correos que salen del servidor. Vamos hacer una prueba.
# echo “La prueba fue un éxito” | mail -s “Pruebas AWS SES” destinatario@prueba.co

AWS SES es una herramienta poderosa que vale la pena probar e integrar con nuestros sistemas de envío de correo. Espero que les guste la publicación.
Referencias
https://documentation.wazuh.com/3.x/user-manual/manager/manual-email-report/smtp_authentication.html