Cuando envía un correo electrónico, un remitente interactúa con un destinatario al mismo tiempo. Pero cuando lidias con correos electrónicos transaccionales o correos masivos en tu aplicación, no se pueden enviar todos al mismo tiempo. Los correos electrónicos se colocan en una cola SMTP que proporciona almacenamiento temporal antes del procesamiento. Cuando el destinatario puede recibir correo electrónico, se envían. Aquí descubriremos por qué optas por hacer cola de correo electrónico en tu aplicación y cómo puedes hacerlo.
¿Qué es una cola de correo electrónico?
Una cola de correo electrónico es un componente obligatorio de los servidores SMTP. Es un sistema que crea una serie de correos electrónicos que están a la espera de ser procesados para su entrega. La cola de correo electrónico es una forma de Cola de mensajes, una comunicación asíncrona de servicio a servicio. Una cola de mensajes está destinada a desacoplar un proceso de producción de uno de consumo. Una cola de correo electrónico desacopla al remitente del destinatario. Les permite comunicarse sin estar conectados. Como tal, los correos electrónicos en cola esperan el procesamiento hasta que el destinatario esté disponible para recibirlos.
Puede ver una cola de correo electrónico como un búfer donde se almacenan los correos electrónicos antes de que lleguen al punto final. Al mismo tiempo, el remitente no necesita enviar cada mensaje por separado. La comunicación entre el remitente y el destinatario es asincrónica. Una vez que los correos electrónicos han sido encolerizados, se entregan paso a paso. Por lo general, el servidor SMTP comienza desde el principio de la cola y continúa.
Cómo funcionan las colas de correo electrónico
Digamos que estás lanzando una campaña de correo electrónico que contiene 100 destinatarios. Su cliente de correo electrónico interactúa con el servidor SMTP para enviar el mensaje. El servidor, a su vez, interactúa con los servidores SMTP en los hosts de los destinatarios para transmitir el correo electrónico. Dado que está enviando 100 correos electrónicos, el servidor SMTP de su host los pone en una cola. La mayoría de los servidores de correo utilizan un agente de transferencia de correo (MTA) llamado sendmail para realizar el envío real. Trataremos las diferencias entre estos dos términos en la siguiente sección. El MTA enviará periódicamente todos los mensajes en cola hasta que se completen. Si el servidor SMTP del destinatario no responde, sendmail enviará correos electrónicos de forma recurrente. En este caso, la cola de correo electrónico se convierte en la cola de sendmail. Por lo general, su cliente de correo será notificado sobre este tipo de problema. Si la cola de sendmail no se entrega durante un plazo específico (por ejemplo, cinco días), se devolverá el correo electrónico.
– Un servidor de correo un sistema informático que envía y recibe mensajes electrónicos utilizando protocolos de correo electrónico. Para la diferencia entre protocolos de correo electrónico, consulte la publicación del blog: SMTP vs. IMAP vs. POP3.
– Un servidor SMTP es la parte del servidor de correo que maneja el correo saliente. Ahí es donde se implementa principalmente la cola de correo electrónico.
– Un agente de transferencia de correo o MTA es un tipo específico de software que pone en cola el correo electrónico y lo mueve a lo largo de una cadena de entrega hasta que llega a un Agente de entrega de correo (MDA).
Por qué se obstruyen las colas de correo electrónico y cómo solucionar que
Al realizar envíos masivos, el servidor SMTP coloca sus mensajes salientes automáticamente en una cola de correo electrónico. Se envían uno por uno desde este búfer. Es un proceso regular que es bastante beneficioso para las campañas de correo electrónico. Al mismo tiempo, los correos electrónicos en cola pueden convertirse en un problema cuando esperan ser enviados durante un tiempo anormalmente largo (depende del servicio que utilice). Los correos electrónicos en cola no serán rebotados. Se enviarán de todos modos, pero el tiempo de entrega se puede reducir significativamente. Y aquí están las dos razones principales para eso:
El volumen de correos electrónicos excedido
Algunos proveedores de buzones de correo (en su mayoría los principales como Gmail o Yahoo) imponen límites de velocidad de correo electrónico en las direcciones IP. Los límites se basan en la reputación del remitente. Si superaste esta tasa y pusiste demasiados correos electrónicos en cola, la velocidad de entrega disminuirá. También puede alcanzar el tamaño máximo de archivo adjunto de correo electrónico, que también puede ser un factor de freno. La única solución es ponerse en contacto con el servidor de entrada con la mayor frecuencia posible para empujar la cola. Cuando una IP excede el límite de correos electrónicos, el servidor SMTP responde con un código de error (por ejemplo, 421) a cualquier comando. Puede leer más sobre los comandos SMTP y los códigos de respuesta en nuestra entrada de blog. Además, se recomienda optar por una dirección IP dedicada en lugar de una opción compartida para maximizar la velocidad de su flujo de correo electrónico.
Problemas relacionados con el spam
Otra razón común es que su correo electrónico ha sido eliminado por los filtros de spam. ¡No te asustes! Los filtros permitirán que los correos electrónicos pasen gradualmente para analizar cómo reaccionan el resto de los destinatarios al mensaje. Si hay un progreso lento, está bien. Su campaña de correo electrónico está siendo observada y evaluada. Si está atascado, puede haber diferentes razones, incluido el bloqueo de su dirección IP. En este caso, necesitas dejar de estar en la lista y optimizar tu campaña de correo electrónico. Lee nuestra publicación de blog sobre cómo evitar que los correos electrónicos se conviertan en spam.
Además de estas causas fundamentales, una cola puede obstruirse por otras razones que debe averiguar con su proveedor de correo.
Administrar colas de correo electrónico
Administrar una cola de correo electrónico es una tarea fácil si utiliza un panel de control del servidor como cPanel. Proporciona WebHostManager (WHM) para manejar un montón de cosas. ¿Y si no lo haces? Dado que no tenemos idea de qué servidor de correo utiliza, echemos un vistazo a los comandos para los agentes de transferencia de correo más utilizados: Postfix y Exim.
Command | Postfix | Exim |
List the queued emails | postqueue -p |
exim -bp |
Reattempt delivery of all queued emails | postqueue -f |
exim -q -v |
Remove all queued emails | postsuper -d ALL |
exiqgrep -z -i | xargs exim -Mrm |
Remove a particular queued email | postsuper -d "Queue ID”postsuper -d <message-id> |
exim -Mrm <message-id> |
Correo electrónico cola en su app
Normalmente, Los servidores SMTP incorporado en la cola del sistema de gestión. Esta es una opción si tu campaña de correo electrónico tiene cientos de destinatarios. Pero a veces, es mejor tener una cola de correo electrónico directamente en tu aplicación. Estos son algunos casos en los que es beneficioso:
- Si un usuario realiza acciones asíncronas, como enviar notificaciones a 1000 contactos, sería muy lento sin usar la cola o la tarea en segundo plano.
- Si tu aplicación está rastreando, por ejemplo, el límite de megabytes al mes y quieres enviar una notificación sobre el alcance del límite del 70% / 80% / 90%. Potencialmente, puede suceder rápidamente para un uso alto, por lo que se necesita que la cola envíe solo un correo electrónico a un usuario en lugar de enviar tres correos electrónicos por evento.
- Si necesita enviar más de 10 mil correos electrónicos transaccionales o masivos todos los días.
La cola SMTP puede no ser suficiente para manejar estas tareas. Es por eso que debes optar por una arquitectura de envío de correo electrónico refinada. Se basa en un sistema asincrónico para enviar correos, que pondrá en cola los mensajes antes de que lleguen al servidor de correo. Así es como puede verse a un nivel superior:
Aquí puede ver tres procesos principales:
Los trabajadores en expansión implementan solicitudes masivas para correos electrónicos almacenados en la base de datos
Si el mismo correo electrónico se va a entregar a worker amplía las solicitudes masivas para cada destinatario. Esto empuja los correos electrónicos a la cola de correo electrónico.
La cola de correo electrónico se implementa a través del sistema de colas de correo electrónico
No es una cola SMTP. Los correos electrónicos se colocan en una cola, pero no en el servidor de correo. Sin cola, tu aplicación intentará enviar miles de correos electrónicos a la vez. Como resultado, la falta de memoria o de tiempo para procesar la solicitud causaría un bloqueo. Cuando utiliza un sistema de colas de correo electrónico como ActiveMQ o RabbitMQ, los correos electrónicos se ponen en cola y se procesan en lotes.
Trabajador de envío de correo envía correos electrónicos en cola al servidor de correo
Este trabajador en realidad toma los correos electrónicos de la cola y los envía al servidor de correo. Si la respuesta del servidor es negativa, el correo electrónico se envía a una cola de errores, que lo reenvía más tarde o cancela la entrega. Depende de usted configurar el escenario. Los correos electrónicos entregados con éxito se pueden archivar.
Pruebe su sistema de colas de correo electrónico con un servidor SMTP falso
Una vez que haya configurado esta arquitectura avanzada de envío de correo electrónico, no olvide probarlo. Un servidor SMTP falso como Mailtrap es una herramienta perfecta para esto. No es una herramienta para probar el servidor SMTP. Por lo tanto, no podrá usarlo para probar la cola de correo electrónico SMTP. Pero si tiene implementada su cola de correo electrónico antes del servidor de correo, entonces se puede usar Mailtrap. Proporciona todas las credenciales necesarias, como puerto, método de autenticación, etc. Además, puede beneficiarse de integraciones listas para usar para las pilas de tecnología más comunes. Por lo tanto, simplemente copie un fragmento de código y péguelo en su aplicación.
Comenzar a probar
La prueba de fallos es otro beneficio de usar un servidor SMTP falso. Sus correos electrónicos transaccionales o de marketing se transmitirán a un servidor POP3 falso. Esto excluye cualquier spam a usuarios reales. Además, evita cualquier problema relacionado con la configuración incorrecta, la autenticación, etc. Al final, si su aplicación funciona bien, verá su correo electrónico en la bandeja de entrada de demostración.
Terminando
Por lo tanto, la conclusión clave aquí es que la cola de correo electrónico tiene dos caras de la moneda. La primera es positiva. La cola de correo electrónico y SMTP desacopla los procesos de envío y recepción de correos electrónicos. Esto es útil para casos de correo masivo o masivo. El lado negativo es que un correo electrónico en cola a menudo se asocia con algún error que retrasa el envío del mensaje. Al mismo tiempo, ahora sabe cómo lidiar con estas preocupaciones y aprovechar las colas de correo electrónico como máximo.
Si te ha gustado este artículo, comparte y corre la voz. Realmente lo apreciaremos.