Cómo aumentar tu cuota de correo electrónico de 200 a 50,000 mensajes por día en 24 horas con AWS-SES
Tags: awssns, terraform, awsproyecto, emails
Published: 2023-11-09 14:55:32

En este artículo, podrás aprender cómo podrías ayudar a tu equipo de marketing con su problema de límite de cuota de correo electrónico.

El producto estrella de tu empresa está a punto de tener una gran mejora de características y tu equipo de marketing está listo para lanzar una gran campaña de correo electrónico. Según los datos que tu empresa ha estado recopilando, el número de clientes actuales y posiblemente nuevos es más significativo que el número de correos electrónicos que tu proveedor de correo electrónico actual puede ofrecer en este momento.

Tu equipo de marketing presenta esta situación a tu proveedor de correo electrónico de la empresa buscando una solución rápida. En respuesta, te aconsejan que pueden aumentar la cantidad de correos electrónicos que puedes enviar, pero tomará algunas semanas y costará más debido al aumento en la gestión del servidor de correo electrónico y la nueva configuración de red.

Como puedes ver, esto es un gran obstáculo para las ganancias trimestrales de tu empresa este año. Tu empresa cuenta contigo y con tu equipo. Sin presión, pero solo tienes 24 horas para salvar esta campaña de marketing 😊.

Es posible que te preguntes: **¿cómo se puede hacer esto en 24 horas sin afectar el presupuesto de tu empresa?**

Como puedes apreciar, construir una solución de correo electrónico a gran escala puede ser un desafío complejo y costoso para las empresas, pero no te preocupes, AWS está aquí para ayudarte.

Comencemos reuniendo los recursos necesarios que necesitarás para proporcionar una solución para este problema:

1. Amazon Simple Email Service (SES)
2. Amazon Route 53 (_Para que este proyecto funcione, necesitarás poseer un nombre de dominio_)

**¿Qué es SES?**

SES es la plataforma regional de correo electrónico de Amazon que proporciona una forma sencilla y rentable para que las empresas y las personas envíen y reciban correos electrónicos utilizando sus propias direcciones y dominios de correo electrónico.

**¿Cómo funciona SES?**

- La aplicación del cliente actúa como remitente de correo electrónico y luego hace una solicitud a Amazon SES para enviar correo electrónico a uno o más destinatarios.
- Solo si la solicitud del remitente es válida, Amazon SES acepta el correo electrónico; de lo contrario, se queja.
- Amazon SES envía el mensaje por Internet al receptor del destinatario. Considera la seguridad y el costo al enviar correos electrónicos.

**Representación visual del flujo de trabajo SES**

![ses-flow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvwy1mjz3gqk7m2myirm.png)

**Los flujos de trabajo de entrega de SES son:**

- El ISP entrega con éxito el mensaje en la bandeja de entrada del destinatario.
- La dirección de correo electrónico del destinatario no existe, por lo que el ISP envía una notificación de rebote a Amazon SES. Amazon SES luego reenvía la notificación al remitente.
- El destinatario recibe el mensaje pero lo considera spam y registra una queja con el ISP. El ISP, que tiene configurado un ciclo de retroalimentación con Amazon SES, envía la queja a Amazon SES, que luego la reenvía al remitente.

**¡Ahora es mi momento favorito: es hora de construir!**

Primero, crearás un SES y verificarás automáticamente el nombre de dominio Route53 usando Terraform para resolver el problema del equipo de marketing; SES se utilizará para enviar correos electrónicos de marketing a miles de clientes, incluida información sobre nuestro producto estrella. Un hecho sobre SES es que no solo puede enviar correos electrónicos, sino que también puede recibirlos, tener autorespondedores, en algunos casos puede admitir solicitudes de tickets de clientes a partir de correos electrónicos entrantes y más.

[El repositorio e instrucciones para completar este proyecto se pueden encontrar aquí](https://github.com/ValAug/AWS-SES)

**Codigo de Terraform**

```
resource "aws_ses_domain_identity" "ses_domain" {
    
    domain = var.domain
}

resource "aws_ses_domain_mail_from" "main" {
    
    domain           = aws_ses_domain_identity.ses_domain.domain
    mail_from_domain = "mail.${var.domain}"
}

data "aws_route53_zone" "zone" {

    name         = var.zone_name
    private_zone = false

}

resource "aws_route53_record" "ses_verification_record" {
  
    zone_id = data.aws_route53_zone.zone.zone_id
    name    = var.domain
    type    = "TXT"
    ttl     = "600"
    records = [join("", aws_ses_domain_identity.ses_domain.*.verification_token)]
}

resource "aws_ses_domain_dkim" "ses_domain_dkim" {
    
    domain = join("", aws_ses_domain_identity.ses_domain.*.domain)
}

resource "aws_route53_record" "amazonses_dkim_record" {
  
    count   = 3
    zone_id = data.aws_route53_zone.zone.zone_id
    name    = "${element(aws_ses_domain_dkim.ses_domain_dkim.dkim_tokens, count.index)}._domainkey.${var.domain}"
    type    = "CNAME"
    ttl     = "600"
    records = ["${element(aws_ses_domain_dkim.ses_domain_dkim.dkim_tokens, count.index)}.dkim.amazonses.com"]
}
```

**Diagrama**

![Diagram](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/padgp0fswso22nln4rgj.png)

**Segundo**

Ahora que SES está completamente implementado y completamente verificado en el dominio, es hora de aumentar la cuota de **_200 a 50,000 mensajes._**

Antes de proceder a aumentar la cantidad de mensajes de SES, entendamos el proceso de inicio de Amazon SES:

- AWS coloca todas las nuevas cuentas de SES en el sandbox de Amazon SES.
- ¿Qué sucede cuando SES está en este sandbox? Cuando la cuenta está en el sandbox, AWS aplica las siguientes restricciones:

1. Solo puede enviar correos a direcciones y dominios de correo electrónico verificados.
2. Puede enviar un máximo de 200 mensajes por período de 24 horas.
3. Puede enviar un máximo de 1 mensaje por segundo.

Como puede observar, todas estas restricciones son puntos importantes que le ayudan a prevenir fraudes y abusos, y a proteger su reputación como remitente. ¡Increíble!

Movamos SES fuera del sandbox. Desafortunadamente, hasta el día de hoy, el proceso para sacar a SES del sandbox se hace manualmente directamente desde la consola de administración de AWS:

- [Abra la consola de Amazon SES aquí] (https://console.aws.amazon.com/ses/).
- En el panel de navegación, elija "Panel de cuenta".
- En el cuadro de advertencia en la parte superior de la consola que dice **"Su cuenta de Amazon SES está en el sandbox"**, en el lado derecho, elija **Solicitar acceso a producción**.

- En el modal de detalles de la cuenta, seleccione el botón de opción "Correo electrónico de marketing" o "Correo electrónico transaccional" que describa mejor la mayoría del correo que enviará.

1. **Correo electrónico de marketing**: enviado de uno a muchos a una lista específica de prospectos o clientes que contiene contenido de marketing y promocional, como hacer una compra, descargar información, etc.

2. **Correo electrónico transaccional**: enviado de uno a uno único para cada destinatario, generalmente desencadenado por una acción del usuario, como una compra en un sitio web, una solicitud para restablecer una contraseña, etc.

- En "URL del sitio web", ingrese la URL de su sitio web para ayudarnos a comprender mejor el tipo de contenido que planea enviar.
- En "Descripción del caso de uso", explique cómo planea utilizar Amazon SES para enviar correo electrónico. Para ayudarnos a procesar su solicitud, debe responder las siguientes preguntas:

1. ¿Cómo planea crear o adquirir su lista de correo?
2. ¿Cómo planea manejar los rebotes y las quejas?
3. ¿Cómo pueden los destinatarios optar por no recibir correo electrónico suyo?
4. ¿Cómo eligió la tasa de envío o la cuota de envío que especificó en esta solicitud?

- En "Contactos adicionales", indíquenos dónde desea recibir comunicaciones sobre su cuenta. Esto puede ser una lista separada por comas de hasta 4 direcciones de correo electrónico.
- En "Idioma de contacto preferido", elija si desea recibir comunicaciones en inglés o japonés.
- En "Aceptación", marque la casilla que indica que acepta enviar correo electrónico solo a personas que lo hayan solicitado explícitamente y confirme que tiene un proceso para manejar las notificaciones de rebote y queja.
- Elija el botón "Enviar solicitud": se mostrará un banner para confirmar que su solicitud se envió y está actualmente en revisión.

Una vez que envíe una revisión de los detalles de su cuenta, no podrá editar sus detalles hasta que se complete la revisión. El equipo de soporte de AWS proporcionará una respuesta inicial a su solicitud dentro de las 24 horas.

**24 horas después**

Recibirá un correo electrónico cordial del equipo de soporte de AWS con un mensaje como este:

> Gracias por enviar su solicitud para aumentar sus límites de envío. Su nueva cuota de envío es de 50,000 mensajes por día. Su tasa máxima de envío ahora es de 14 mensajes por segundo. También hemos sacado su cuenta del sandbox de Amazon SES.

**¿Qué puede hacer su equipo de marketing ahora?**

Bueno, ahora que su cuenta está fuera del sandbox, su equipo de marketing puede enviar correos electrónicos a cualquier destinatario, independientemente de si la dirección o el dominio del destinatario están verificados. Sin embargo, es importante tener en cuenta lo siguiente: usted sigue siendo responsable de verificar todas las identidades que utilice como direcciones **"De", "Origen", "Remitente" o "Ruta de retorno"**.

Espero que este artículo le haya ayudado a comprender más sobre las limitaciones y características poderosas de Amazon SES, y espero que utilice este ejemplo en uno de sus nuevos proyectos en el futuro.

Felicitaciones por completar la lectura de este artículo y espero que lo hayas disfrutado. Ahora es tiempo de que te tomes un merecido descanso. ¿Por qué no tomar una taza de café o dar un refrescante paseo afuera?

[Créditos a la documentación de AWS-SES](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html)