SMTP para Node.js — correo de su aplicación que llega
Node.js no tiene función de correo integrada; prácticamente todas las aplicaciones usan Nodemailer para eso. Esa biblioteca hace sencillo el envío, pero no dice nada sobre la entregabilidad: eso depende por completo del servidor SMTP por el que envía.
Nodemailer trabaja con un transporte. Cree un transporte SMTP con los datos de su relay —host, puerto, cifrado y acceso— y el resto de su código se queda igual. Lo que hoy sale por un servidor local o una cuenta de pruebas, mañana pasa por 2mail.
Por qué falla sin relay
Una aplicación en Node.js envía correo justo cuando importa: un código de verificación, una recuperación de contraseña, la confirmación de una reserva. Son mensajes que se esperan en cuestión de segundos. Si salen de un servidor sin reputación, una parte no llega o llega tarde, y el usuario pulsa "volver a enviar" hasta que se rinde.
Configurar el SMTP en Node.js
Obtener los datos
Acceda a su cuenta de 2mail y obtenga allí su servidor SMTP, su nombre de usuario y su contraseña.
Introducirlos en Node.js
Cree en Nodemailer un transporte SMTP. Ponga como host el servidor SMTP de 2mail y como puerto el 587, y desactive la opción secure para que la conexión se eleve por STARTTLS. En auth introduzca el usuario y la contraseña de su acceso de 2mail. Lea esos datos de variables de entorno, no del código. Nodemailer tiene un método verify para comprobar la conexión antes del primer correo real: úselo.
Autenticar el dominio
Asegúrese de que SPF, DKIM y DMARC de su dominio son correctos, para que los destinatarios puedan verificar que el correo viene de usted.
Probar
Envíe un mensaje de prueba a una dirección de un gran proveedor y compruebe que llega a la bandeja de entrada y no a la carpeta de spam.
Los campos que pide Node.js
Cada plataforma los llama de una manera algo distinta, pero siempre son los mismos cinco. Los valores concretos dependen de su cuenta y los encuentra en su cuenta de 2mail: cópielos de ahí para asegurarse de usar los correctos.
| Campo | Qué introducir |
|---|---|
| Servidor SMTP (host) | El nombre del servidor de su cuenta de 2mail. |
| Puerto | El puerto que corresponde al cifrado elegido; su cuenta le indica cuál. |
| Cifrado | TLS. No envíe nunca sin cifrar: de lo contrario sus credenciales viajan en claro. |
| Nombre de usuario | El acceso SMTP de su cuenta de 2mail. |
| Contraseña | La contraseña correspondiente. No use nunca la contraseña del buzón de un empleado. |
Qué correos envía Node.js
Una vez configurado el relay, todos estos pasan por 2mail: no tiene que configurarlos uno a uno.
Errores frecuentes con Node.js
secure y el puerto tienen que encajar
La opción secure no significa "seguro o inseguro", sino "TLS desde el primer byte". En el puerto 587 debe estar desactivada: STARTTLS viene después. Si la activa igualmente, la conexión se cuelga o se corta de inmediato, sin un error claro.
Un transporte, reutilizado
Cree el transporte una sola vez al arrancar y reutilícelo, en lugar de montar uno nuevo por cada correo. En un pico —una ronda de recordatorios, una campaña— abriría si no cientos de conexiones a la vez, lo que un relay puede leer como abuso. Nodemailer puede agrupar conexiones; actívelo con volúmenes mayores.
Espere el resultado y regístrelo
El envío es asíncrono. Quien no espera la respuesta del servidor ni la registra nunca ve que un mensaje ha sido rechazado. Registre como mínimo el id del mensaje y el posible rechazo, y conecte preferiblemente los webhooks de 2mail para la entrega y el rebote, para ver también lo que falla tras la entrega.
¿Otra plataforma?
SMTP es un protocolo estándar: cualquier sistema que hable SMTP —un CRM, un ERP, una aplicación propia o un servidor— puede enviar a través de 2mail con esos mismos cinco campos.