De un vistazo. SMTP: puertos 587 / 465, bibliotecas de correo en todas partes · API: HTTPS, clave de API, JSON estructurado · Entrega: mismas IP, misma autenticación · Comentarios: webhooks y registros de eventos
Versión resumida
- Dos formas de entregar un mensaje. Ambas interfaces hacen el mismo trabajo: tu aplicación entrega un mensaje a un servicio de envío, y el servicio lo entrega al servidor de correo del destinatario.
- Cómo funciona SMTP para una aplicación. SMTP es el protocolo que usan los servidores de correo desde hace décadas, y casi todos los lenguajes de programación, frameworks y programas tienen una biblioteca para él.
- Cómo funciona una API de correo. Una llamada a la API es una solicitud HTTPS, normalmente con un cuerpo JSON que indica el remitente, los destinatarios, el asunto y el contenido.
- Diferencias que importan. La configuración es más rápida con SMTP cuando el software ya envía correo.
- Errores, reintentos y comentarios. Uses la que uses, una entrega correcta solo significa que el servicio aceptó el mensaje.
- Seguridad. Trata las contraseñas SMTP y las claves de API como secretos.
Dos formas de entregar un mensaje
Ambas interfaces hacen el mismo trabajo: tu aplicación entrega un mensaje a un servicio de envío, y el servicio lo entrega al servidor de correo del destinatario. La diferencia está en cómo se realiza esa entrega.
Con SMTP, tu aplicación habla el protocolo de correo con un relay. Con una API, hace una solicitud web normal y el servicio construye el mensaje por ti.
Cómo funciona SMTP para una aplicación
SMTP es el protocolo que usan los servidores de correo desde hace décadas, y casi todos los lenguajes de programación, frameworks y programas tienen una biblioteca para él. Le indicas un host, un puerto, un modo de seguridad y las credenciales, y envía el mensaje.
Host: smtp.example.com
Port: 587 (STARTTLS)
Username and password: from your account
Usa el puerto 587 con STARTTLS o el puerto 465 con TLS implícito, que son los puertos de envío pensados para aplicaciones que inician sesión. En cada etapa se devuelve un código de respuesta, como 250 para aceptado, de modo que tu código puede saber si el relay aceptó el mensaje.
Cómo funciona una API de correo
Una llamada a la API es una solicitud HTTPS, normalmente con un cuerpo JSON que indica el remitente, los destinatarios, el asunto y el contenido. Te autenticas con una clave de API, y la respuesta te dice si la solicitud fue aceptada y le asigna un identificador que puedes usar más adelante.
POST /v1/messages
Authorization: Bearer <api key>
{"from":"you@example.com","to":"them@example.com","subject":"Hello"}
Como la solicitud son datos estructurados, una API puede hacer cosas que resultan incómodas con SMTP: enviar un mensaje a muchos destinatarios con un valor distinto para cada uno, añadir tus propias etiquetas de seguimiento, elegir una plantilla almacenada y rellenar sus variables.
Diferencias que importan
La configuración es más rápida con SMTP cuando el software ya envía correo. El control es mayor con una API, que devuelve errores estructurados y acepta opciones para las que un protocolo de correo no tiene lugar. Una sola solicitud de API puede llevar muchos destinatarios, mientras que SMTP necesita una transacción por mensaje o por lote.
La entrega es la misma en ambos casos: el servicio de envío firma el mensaje, elige una IP y habla con el servidor del destinatario. Ninguna de las dos interfaces logra por sí sola que un mensaje llegue a la bandeja de entrada. Eso lo consiguen la autenticación y la reputación.
Errores, reintentos y comentarios
Uses la que uses, una entrega correcta solo significa que el servicio aceptó el mensaje. Si llegó al destinatario se informa más tarde, como una entrega, un rebote o una queja. Usa webhooks o el registro de eventos para obtener esos resultados.
Reintenta solo lo que falló por un motivo temporal. Un tiempo de espera agotado o una respuesta 4xx merecen un reintento con retardo, mientras que una respuesta 5xx o una dirección rechazada fallarán siempre, por lo que reintentar solo añade carga.
Seguridad
Trata las contraseñas SMTP y las claves de API como secretos. Guárdalas en la configuración del entorno, nunca en el código fuente ni en una aplicación móvil, y da a cada aplicación su propia clave para poder cancelar una sin afectar a las demás.
Prefiere claves limitadas al envío, rótalas de forma periódica y usa siempre una conexión cifrada. Ambas interfaces deben usarse sobre TLS.
Cómo elegir
Elige SMTP cuando conectes software que ya envía correo, como un CMS, un help desk o una aplicación antigua. Elige la API para código nuevo, cuando quieras plantillas, valores por destinatario, etiquetas y respuestas estructuradas.
No quedas atado. Las dos comparten tu dominio, tus IP y tus listas de supresión, así que un equipo puede empezar con SMTP y pasar más adelante a la API las rutas con más tráfico, una a una.
Lecturas adicionales y fuentes
- RFC 6409: Message Submission for Mail
- RFC 8314: Cleartext Considered Obsolete: TLS for email submission
- Google: directrices para remitentes de correo
Hazlo en MigoSMTP: artículos del centro de ayuda
- Seguridad y rotación de claves de API
- Webhooks y eventos de entrega
- Ajustes SMTP: puertos, TLS y autenticación
Guías y herramientas relacionadas
- API de correo: conoce la API y qué cubre.
- Relay SMTP: conecta el software existente.
- Correo transaccional: qué es y cómo enviarlo bien.
- El relay SMTP explicado: cómo funciona un relay.
¿Listo para probarlo? Empieza con el plan gratuito y envía tu primer mensaje en minutos.
Preguntas frecuentes
¿Cuál es la diferencia entre una API de correo y SMTP?
SMTP es el protocolo de correo estándar: tu aplicación abre una conexión con un servidor de correo y le entrega un mensaje. Una API de correo es una interfaz HTTPS que ofrece un servicio de envío, en la que tu aplicación publica el mensaje y sus opciones como una solicitud y lee el resultado como una respuesta.
¿Es una API de correo más rápida que SMTP?
Puede ser más fácil de hacer rápida, porque una sola solicitud puede llevar muchos destinatarios y variables, y mantienes conexiones con un servicio web que ya utilizas. La rapidez hasta la bandeja de entrada depende sobre todo del servicio de envío y de tu reputación, no de la interfaz que uses.
¿Cuál debería usar para el correo transaccional?
Cualquiera de las dos funciona. Una API encaja bien con código nuevo que quiere plantillas, metadatos y errores estructurados. SMTP encaja bien con software que ya envía correo, porque solo cambias un nombre de host y las credenciales.
¿Puedo usar ambas con la misma cuenta?
Sí. Normalmente ambas comparten la misma autenticación de dominio, las mismas IP de envío, las mismas listas de supresión y los mismos registros, así que puedes enviar desde una aplicación antigua por SMTP y desde código nuevo por la API.