Blog

Puertos SMTP de correo electrónico: 25 vs 465 vs 587 vs 2525

Debounce
Artículos
47 minutos de lectura

Puntos Clave

  • Los puertos SMTP controlan cómo se envían los correos electrónicos desde los clientes y las aplicaciones a los servidores de correo, lo que los hace esenciales para establecer conexiones de correo electrónico seguras y fiables.
  • El puerto 587 es el puerto SMTP recomendado para enviar correo electrónico en la actualidad, ya que admite autenticación y cifrado STARTTLS y cuenta con un amplio soporte por parte de los proveedores de correo electrónico.
  • Una seguridad SMTP robusta depende de varias prácticas fundamentales: exigir el cifrado TLS para todas las conexiones, utilizar el envío de correo electrónico autenticado (SMTP AUTH), mantener actualizados los certificados SSL/TLS, implementar estándares de autenticación como SPF, DKIM y DMARC, y supervisar la actividad SMTP para detectar problemas de seguridad o configuraciones incorrectas con antelación.
  • Los problemas comunes relacionados con los puertos SMTP incluyen tiempos de espera de conexión agotados, fallos de autenticación, bloqueo de puertos por parte del proveedor de servicios de Internet o del cortafuegos, y problemas de negociación TLS, como errores de certificado, incompatibilidad de protocolos o conjuntos de cifrado no compatibles.

Todos los días, más de 370 mil millones de correos electrónicos Aunque la comunicación se realiza a través de internet, pocas personas piensan en la infraestructura que la hace posible. En el centro de todo se encuentra el Protocolo Simple de Transferencia de Correo (SMTP), el protocolo estándar responsable de enviar correos electrónicos desde el cliente o la aplicación del remitente a un servidor de correo, y posteriormente al servidor del destinatario.

Un puerto SMTP es el punto final de la red que permite esta conexión. En la transmisión de correo electrónico, el puerto determina cómo un cliente o aplicación se comunica con el servidor de correo y qué mecanismos de seguridad, como cifrado La autenticación se aplica durante el proceso. Por eso, el puerto SMTP que utilice es importante tanto para la entrega como para la seguridad. Un puerto incorrecto puede provocar fallos de conexión, mensajes bloqueados o una menor protección durante la transmisión, mientras que la configuración correcta garantiza una entrega de correo electrónico fiable y segura.

Los puertos SMTP más utilizados actualmente son el 25, el 465, el 587 y el 2525. En esta guía, explicamos cómo funciona cada uno de ellos y cómo elegir el adecuado para una entrega de correo electrónico segura y fiable.

Vamos a sumergirnos

A continuación se muestra una guía de referencia concisa del puerto SMTP:
Puerto 25: Puerto SMTP estándar para retransmisión de correo electrónico de servidor a servidor (comúnmente bloqueado debido a problemas de spam).
Puerto 587: puerto seguro predeterminado para envío de correo electrónico (recomendado).
Puerto 465: Puerto SMTPS heredado (se utilizará solo si es necesario).
Puerto 2525: Puerto alternativo cuando otros puertos están bloqueados.

Comprensión de los fundamentos de SMTP

¿Qué es SMTP y cómo funciona?

El Protocolo simple de transferencia de correo (SMTP) es el estándar de Internet para la transmisión de correo electrónico.

Desarrollado a principios de la década de 1980, SMTP sirve como base para la forma en que los correos electrónicos se mueven a través de las redes desde el remitente hasta el destinatario.

Piense en las funciones de SMTP como si fueran una carrera de relevos:

  1. Redacción: Escribes un correo electrónico en tu cliente (como Gmail, Outlook o Apple Mail)
  2. Envío: Su cliente de correo electrónico envía el mensaje a un servidor SMTP
  3. Retransmisión: El servidor SMTP determina dónde enviar el mensaje a continuación
  4. Entrega: Después de pasar potencialmente por varios servidores SMTP, el mensaje llega al servidor de correo del destinatario.
  5. Recuperación: El destinatario accede al mensaje mediante protocolos como POP3 o IMAP

Una ilustración que muestra el proceso simple de cómo se envía un correo electrónico a través de Internet (Redactar > Servidor SMTP > Entregar al servidor de correo del destinatario y luego Leer)

Para visualizar este proceso, imagine enviar una carta física:

  • Usted (cliente de correo electrónico) escribe una carta y la deja en un buzón (envío SMTP)
  • El servicio postal (retransmisión SMTP) envía su carta a través de varias instalaciones de clasificación
  • Finalmente, la carta llega a la oficina de correos local de su destinatario (servidor de correo entrante).
  • Su destinatario revisa su buzón (POP3/IMAP) y recupera su carta

La evolución de los puertos SMTP

Cuando SMTP se estandarizó por primera vez en 1982, la seguridad del correo electrónico no era una preocupación principal.

Internet era una red mucho más pequeña y confiable, utilizada principalmente por instituciones académicas y de investigación.

Por lo tanto, la especificación SMTP original no tenía mecanismos de seguridad integrados: los correos electrónicos se transmitían como texto simple, sin cifrado ni autenticación robusta.

Sin embargo, esta falta de seguridad se volvió problemática a medida que Internet creció y el correo electrónico se convirtió en una herramienta de comunicación fundamental para empresas e individuos.

Algunos problemas de seguridad clave con el SMTP tradicional incluyen:

  • Transmisión de texto simple: Los mensajes podrían ser interceptados y leídos
  • Sin cifrado: los datos confidenciales eran vulnerables
  • Autenticación limitada: es fácil falsificar la identidad del remitente
  • Potencial de retransmisión abierta: los servidores podrían ser explotados para enviar spam

Con el tiempo, se desarrollaron extensiones y mejoras de SMTP para abordar estas deficiencias:

  • SMTP AUTH: Mecanismos de autenticación proporcionados
  • STARTTLS: Se agregó soporte para cifrado a nivel de transporte
  • SMTPS: Se implementó el cifrado SSL/TLS en toda la conexión

¿Qué son los puertos y por qué son importantes?

Una ilustración de íconos que representan los diferentes puertos de correo electrónico y por qué usarlos

En redes, un puerto es un punto final lógico para la comunicación.

Piense en los puertos como puertas especializadas a un sistema informático, cada una de las cuales atiende un tipo específico de tráfico. Los puertos se identifican con números del 0 al 65535.

Para la comunicación SMTP se han designado puertos específicos:

  • Puerto 25: El puerto SMTP original
  • Puerto 465: Inicialmente designado para SMTPS (SMTP sobre SSL)
  • Puerto 587: El puerto de envío de mensajes moderno
  • Puerto 2525: un puerto alternativo que se utiliza cuando los puertos estándar están bloqueados

La elección del puerto afecta:

  1. Seguridad: Los diferentes puertos ofrecen distintos niveles de cifrado y autenticación.
  2. Capacidad de entrega: los ISP pueden bloquear ciertos puertos para reducir el spam
  3. Compatibilidad: No todos los servicios de correo electrónico admiten todos los puertos
  4. Funcionalidad: Algunos puertos están diseñados para propósitos específicos en el ecosistema del correo electrónico.

Comprender estas distinciones es fundamental para configurar sistemas de correo electrónico confiables y seguros.

Los principales puertos SMTP: una perspectiva histórica

Entonces, ¿por qué estos puertos y por qué existen diferencias? ¿Por qué no tener un solo puerto seguro específico para el correo electrónico que todos usen? Analicemos esto.

Puerto 25: El estándar original

El puerto 25 se estableció como el puerto SMTP estándar en 1982 cuando el protocolo fue definido por primera vez por el Grupo de trabajo de ingeniería de Internet (IETF).

Durante muchos años, sirvió como puerto predeterminado para todo el tráfico SMTP, tanto para enviar correos electrónicos de clientes a servidores como para la retransmisión de servidor a servidor.

La implementación del Puerto 25 se originó a partir de una solicitud de 1982 de la Universidad del Sur de California al Grupo de Trabajo de Ingeniería de Internet (IETF).

En ese momento, el objetivo era establecer un canal de comunicación estandarizado para la transmisión de correo electrónico con protección básica contra ataques, como la interceptación del tipo "man-in-the-middle".

Hoy en día, el papel del Puerto 25 se ha reducido significativamente. Su función principal se limita ahora a:

  • Comunicación de servidor a servidor: los agentes de transferencia de correo (MTA) utilizan el puerto 25 para retransmitir mensajes entre servidores de correo
  • Compatibilidad con sistemas heredados: algunos sistemas de correo electrónico más antiguos aún dependen del puerto 25

Una conexión telnet simple a un servidor SMTP en el puerto 25 podría verse así:

> telnet smtp.example.com 25Trying 192.0.2.1…

Connected to smtp.example.com.

Escape character is ‘^]’.

220 smtp.example.com ESMTP Postfix

> EHLO client.example.com

250-smtp.example.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-STARTTLS

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

Tenga en cuenta la línea 250-STARTTLS, que indica que este servidor admite el cifrado a través del comando STARTTLS, pero no es obligatorio.

Sin embargo, teniendo esto en mente, el puerto 25 tiene varias limitaciones de seguridad importantes:

  • No se requiere cifrado: de forma predeterminada, las comunicaciones a través del puerto 25 no están cifradas
  • STARTTLS opcional: si bien es compatible, el cifrado no es obligatorio
  • Vulnerable a la interceptación: las comunicaciones de texto simple se pueden leer fácilmente si se interceptan.
  • Vector de spam: utilizado históricamente para enviar correos electrónicos spam.

Debido a estos problemas, en particular su explotación por parte de spammers, muchos proveedores de servicios de Internet (ISP) y proveedores de alojamiento en la nube ahora bloquean el tráfico saliente de sus clientes en el puerto 25.

Este bloqueo ayuda a evitar que los sistemas comprometidos se utilicen para distribuir spam.

Si tienes problemas de conexión en el puerto 25, probablemente se deba a que tu proveedor de internet lo está bloqueando. En una prueba sencilla, podrías ver lo siguiente:

> telnet smtp.example.com 25Trying 192.0.2.1…

telnet: Unable to connect to remote host: Connection timed out

Este bloqueo es tan generalizado que el puerto 25 ya no debería utilizarse para envíos de correo electrónico a clientes. En su lugar, debería reservarse exclusivamente para la comunicación entre servidores.

Puerto 465: El puerto de cifrado implícito SSL/TLS

El puerto 465 tiene quizás la historia más complicada de los puertos SMTP.

A mediados de la década de 1990, cuando se hizo evidente la necesidad de cifrar el correo electrónico, la Autoridad de Números Asignados en Internet (IANA) asignó brevemente el puerto 465 para “SMTPS” (SMTP sobre SSL).

Sin embargo, esta asignación duró poco.

Alrededor de 1997, la IETF decidió adoptar un enfoque diferente para proteger SMTP: agregar el comando STARTTLS al propio protocolo SMTP, lo que permitiría negociar el cifrado a través de los puertos existentes.

Como resultado, la asignación oficial del Puerto 465 para SMTPS fue revocada después de solo un año aproximadamente.

A pesar de esta descontinuación oficial, muchos servicios de correo electrónico ya habían implementado la compatibilidad con el puerto 465, que seguía utilizándose ampliamente. Esto creó una situación en la que el puerto 465 se utilizaba en la práctica a pesar de que ya no estaba designado oficialmente para SMTP.

Funcionalidad TLS implícita

El puerto 465 utiliza lo que se conoce como “TLS implícito” o “SSL implícito”:

  • La conexión comienza inmediatamente con la negociación SSL/TLS
  • Ninguna parte de la comunicación se produce en texto plano.
  • Si falla la negociación TLS, se finaliza la conexión.
  • Todos los comandos SMTP posteriores se envían a través del canal cifrado

Este enfoque es similar a cómo funciona HTTPS en la web: la conexión segura se establece antes de que se transmitan cualquier dato de la aplicación.

A continuación se muestra un flujo de comunicación simplificado para el puerto 465:

  • El cliente inicia la conexión al servidor en el puerto 465
  • Se produce el protocolo de enlace SSL/TLS
  • Tras un protocolo de enlace exitoso, comienza la comunicación SMTP
  • Todos los comandos y datos SMTP están encriptados

Hoy en día, el puerto 465 existe en un estado curioso:

  • No está reconocido oficialmente por el IETF para SMTP
  • Cuenta con un amplio respaldo de los proveedores de servicios de correo electrónico.
  • Lo recomiendan algunos proveedores de correo electrónico para consumidores.
  • Proporciona una seguridad sólida a través de su enfoque TLS implícito.

El puerto 465 es apropiado para:

  • Sistemas heredados que se configuraron para usar SMTPS en este puerto
  • Escenarios en los que se requiere la máxima protección contra ataques de degradación
  • Situaciones en las que un proveedor de correo electrónico lo recomienda específicamente

La Autoridad de Números Asignados de Internet ha reasignado el puerto 465 a un servicio diferente (“Directorio de encuentro de URL para SSM”), aunque en la práctica continúa utilizándose principalmente para SMTP seguro.

Puerto 587: El puerto de envío moderno

En 1998, la RFC 2476 (posteriormente sustituida por la RFC 6409) introdujo el concepto de un puerto dedicado para el envío de mensajes, independiente del puerto de retransmisión SMTP. Esta separación atendió la creciente necesidad de distinguir entre dos tipos de tráfico SMTP:

  • Envío de mensajes: clientes de correo electrónico que envían mensajes a su servidor de correo
  • Retransmisión de mensajes: servidores de correo que transfieren mensajes a otros servidores de correo

El puerto 587 se designó para esta función de envío de mensajes, lo que crea una clara distinción con respecto a la función de retransmisión del puerto 25. Esta separación permitió aplicar diferentes políticas y requisitos de seguridad a cada tipo de tráfico.

Capacidades de STARTTLS

El puerto 587 utiliza "TLS explícito" mediante el comando STARTTLS. Funciona así:

  1. El cliente se conecta al servidor en el puerto 587
  2. El servidor se identifica y enumera sus extensiones compatibles
  3. El cliente emite el comando STARTTLS
  4. El servidor responde y comienza la negociación TLS
  5. Tras una negociación exitosa, la sesión SMTP se cifra.
  6. El cliente normalmente se autentica mediante SMTP AUTH
  7. El envío de correo electrónico se realiza dentro del canal cifrado

Una sesión SMTP típica que utiliza el puerto 587 con STARTTLS podría verse así:

> telnet smtp.example.com 587Trying 192.0.2.1…

Connected to smtp.example.com.

Escape character is ‘^]’.

220 smtp.example.com ESMTP Postfix

> EHLO client.example.com

250-smtp.example.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-STARTTLS

250-AUTH PLAIN LOGIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

> STARTTLS

220 2.0.0 Ready to start TLS

… (TLS negotiation occurs) …

> EHLO client.example.com

250-smtp.example.com

250-PIPELINING

250-SIZE 10240000

250-VRFY

250-ETRN

250-AUTH PLAIN LOGIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

> AUTH LOGIN

334 VXNlcm5hbWU6

dXNlcm5hbWU=

334 UGFzc3dvcmQ6

cGFzc3dvcmQ=

235 2.7.0 Authentication successful

Observe cómo la comunicación SMTP comienza en texto simple pero cambia al cifrado TLS después de que se emite el comando STARTTLS.

En la mayoría de los casos, el puerto 587 será su puerto elegido.

Se ha convertido en el estándar recomendado para el envío de correos electrónicos por varias razones convincentes:

  • Estándar oficial: Es reconocido por el IETF como el puerto adecuado para el envío de mensajes.
  • Amplio soporte: la mayoría de los proveedores de correo electrónico modernos admiten el puerto 587
  • Compatibilidad con ISP: es menos probable que los ISP lo bloqueen que el puerto 25
  • Seguridad con flexibilidad: admite un cifrado fuerte y mantiene la compatibilidad con versiones anteriores.
  • Autenticación requerida: generalmente aplica autenticación SMTP, lo que reduce el spam.

Para la gran mayoría de usuarios y organizaciones que configuran nuevos sistemas de correo electrónico, el puerto 587 debería ser la opción predeterminada para el envío de mensajes.

Puerto 2525: La opción alternativa

El puerto 2525 no es un puerto SMTP designado oficialmente ni por la IANA ni por el IETF. En cambio, surgió como una alternativa práctica cuando los puertos estándar (25, 465 y 587) están bloqueados por proveedores de servicios de internet (ISP) o redes corporativas.

En términos funcionales, el puerto 2525 normalmente funciona de manera idéntica al puerto 587:

  • Admite STARTTLS para cifrado
  • Requiere autenticación mediante SMTP AUTH
  • Se utiliza para enviar mensajes, no para retransmitirlos.

La diferencia principal es simplemente el número de puerto en sí, que ayuda a evitar las restricciones de la red.

El puerto 2525 debe considerarse en estos escenarios:

  • Al conectarse desde redes que bloquean los puertos 25, 465 y 587
  • En entornos corporativos con políticas de firewall estrictas
  • Al utilizar proveedores de nube que restringen los puertos de correo electrónico estándar
  • Si experimenta constantemente problemas de conexión con los puertos estándar

Muchos proveedores de servicios de correo electrónico, incluidos Mailgun, SendGrid y otros, admiten el puerto 2525 específicamente para brindar esta opción alternativa a sus clientes.

Cómo elegir el puerto SMTP correcto desde una perspectiva de seguridad

Una ilustración de un desarrollador que piensa qué puerto de correo electrónico debería usar en su proyecto.

Hablemos de seguridad porque, desde la perspectiva de un desarrollador, esta es una de las consideraciones más importantes. Hay varias opciones.

STARTTLS (TLS explícito)

STARTTLS, utilizado principalmente en los puertos 25 y 587, proporciona “cifrado oportunista” a través de estos pasos:

  • La conexión comienza sin cifrar
  • El cliente emite el comando STARTTLS
  • Si el servidor lo admite, se negocia el cifrado.
  • La comunicación continúa cifrada

Ventajas:

  • Compatibilidad con versiones anteriores de servidores que no sean TLS
  • Trabaja con puertos e infraestructura existentes

Desventajas:

  • La comunicación inicial no está cifrada
  • Vulnerable a ataques de degradación donde un atacante impide el comando STARTTLS
  • No todos los servidores requieren TLS, lo que permite el uso de texto sin formato como alternativa.

TLS implícito

El TLS implícito, utilizado en el puerto 465, adopta un enfoque diferente:

  • La conexión comienza inmediatamente con la negociación TLS.
  • Si falla la negociación TLS, se finaliza la conexión.
  • Nunca se produce ninguna comunicación sin cifrar

Ventajas:

  • No hay comunicación en texto plano en ningún momento
  • No es posible cambiar a una conexión no cifrada
  • Mayor protección contra ataques de intermediarios

Desventajas:

  • No es compatible con versiones anteriores de servidores que no admiten TLS
  • No es el enfoque estándar oficial del IETF

Requisitos de autenticación

La autenticación es un componente de seguridad fundamental que verifica la identidad del cliente remitente. Los requisitos de autenticación varían según el puerto:

Puerto 25:

  • La autenticación suele ser opcional
  • Permite con frecuencia la retransmisión no autenticada entre servidores
  • Puede permitir el envío de mensajes anónimos en algunos servidores

Puerto 465:

  • Generalmente se requiere autenticación
  • Generalmente se aplica después de establecer el cifrado TLS
  • Rara vez permite el envío de mensajes anónimos

Puerto 587:

  • Autenticación requerida por el estándar
  • Aplicado después del cifrado STARTTLS
  • Diseñado específicamente para envíos autenticados

Puerto 2525:

  • Los requisitos de autenticación coinciden con el puerto 587
  • Requiere autenticación para enviar mensajes

Vale la pena señalar que los servidores de correo electrónico modernos siempre deben requerir autenticación para el envío de mensajes, independientemente del puerto, para evitar abusos.

Característica puerto 25 puerto 465 puerto 587 puerto 2525
Uso primario Retransmisión de servidor a servidor Envío seguro de mensajes Envío de mensaje Presentación alternativa
Tipo de cifrado STARTTLS opcional TLS implícito STARTTLS STARTTLS
Conexión inicial Sin encriptar cifrada Sin encriptar Sin encriptar
Riesgo de ataque de degradación Alto Bajo Media Media
Autenticación Opcional Obligatorio Obligatorio Obligatorio
Probabilidad de bloqueo del ISP Alto Media Bajo Bajo
Estándar IETF Sí (para relevo) No Sí (para presentación) No
Recomendado para Solo de servidor a servidor Sistemas legados Clientes modernos Cuando otros están bloqueados

Mejores prácticas para la máxima seguridad del correo electrónico

Para garantizar el máximo nivel de seguridad del correo electrónico al configurar SMTP:

  1. Utilice siempre el cifrado:
  • Configure sus servidores para requerir TLS para todas las conexiones
  • Deshabilitar la autenticación de texto sin formato
  • Utilice versiones TLS seguras (TLS 1.2 o superior)
  1. Implementar autenticación fuerte:
  • Requerir autenticación SMTP para todos los envíos de mensajes
  • Utilice un almacenamiento de contraseñas seguro (hashing con sal)
  • Considere implementar la autenticación de dos factores para las cuentas de correo electrónico
  1. Manténgase actualizado con los certificados:
  • Utilice certificados firmados por CA de confianza
  • Renovar periódicamente los certificados SSL/TLS
  • Monitorizar las vulnerabilidades de los certificados
  1. Configurar encabezados y políticas adecuados:
  • Implementar SPF, DKIM y DMARC para la autenticación
  • Establecer encabezados HSTS apropiados
  • Configurar servidores de correo para rechazar conexiones no cifradas
  1. Supervisar y auditar:
  • Registrar todas las transacciones SMTP
  • Revise periódicamente los registros para detectar actividad sospechosa
  • Pruebe periódicamente la configuración de seguridad de su correo electrónico

Cómo implementar puertos SMTP

Una ilustración de un desarrollador que piensa en la mejor manera de configurar sus puertos SMTP de envío de correo electrónico.

Ahora, elija los puertos más adecuados para su proyecto. Podemos desglosarlos por caso de uso para que encuentre el más adecuado.

Para usuarios individuales y clientes de correo electrónico

Si está configurando un cliente de correo electrónico como Outlook, Apple Mail o Thunderbird:

  1. Primera opción: Puerto 587 con STARTTLS
  • Ampliamente apoyado y con menos probabilidades de ser bloqueado
  • Ejemplo de configuración para Gmail en Outlook:
  • Servidor de correo saliente: smtp.gmail.com
  • Puerto: 587
  • Cifrado: STARTTLS
  • Autenticación: Sí, con usuario y contraseña
  1. Segunda opción: Puerto 465 con SSL/TLS
  • Si su proveedor lo recomienda específicamente
  • Ejemplo de configuración para Yahoo Mail:
  • Servidor de correo saliente: smtp.mail.yahoo.com
  • Puerto: 465
  • Cifrado: SSL/TLS
  • Autenticación: Sí, con usuario y contraseña
  1. Último recurso: Puerto 2525 con STARTTLS
  • Sólo si los puertos 587 y 465 están bloqueados
  • No todos los proveedores admiten este puerto, así que consulte la documentación

Para aplicaciones empresariales y remitentes de gran volumen

Para aplicaciones que envían correos electrónicos transaccionales o de marketing:

Recomendado: Puerto 587

  • El mejor equilibrio entre capacidad de entrega y seguridad
  • Compatible con todos los principales proveedores de servicios de correo electrónico
  • Ejemplo de una aplicación Node.js que utiliza Nodemailer:

const nodemailer = require(‘nodemailer’);let transporter = nodemailer.createTransport({

host: ‘smtp.example.com’,

port: 587,

secure: false, // true for 465, false for other ports

auth: {

user: ‘username’,

pass: ‘password’

},

tls: {

// do not fail on invalid certs

rejectUnauthorized: false

}

});

Alternativa: Puerto 465

  • Para proveedores que lo recomiendan específicamente
  • Ejemplo en PHP usando PHPMailer:

<?php
use PHPMailerPHPMailerPHPMailer;

require ‘vendor/autoload.php’;

$mail = new PHPMailer;

$mail->isSMTP();

$mail->Host = ‘smtp.example.com’;

$mail->SMTPAuth = true;

$mail->Username = ‘username’;

$mail->Password = ‘password’;

$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL encryption

$mail->Port = 465;

?>

Opción de respaldo: Puerto 2525

  • Al implementar en plataformas que bloquean los puertos estándar
  • Ejemplo en Python usando smtplib:

import smtplibimport ssl

from email.message import EmailMessage

msg = EmailMessage()

msg.set_content(“This is a test email.”)

msg[‘Subject’] = ‘Test Email’

msg[‘From’] = ‘[email protected]

msg[‘To’] = ‘[email protected]

context = ssl.create_default_context()

with smtplib.SMTP(‘smtp.example.com’, 2525) as server:

server.starttls(context=context)

server.login(‘username’, ‘password’)

server.send_message(msg)

Para la comunicación de servidor a servidor

Para la configuración del servidor de correo que gestiona el tráfico de retransmisión:

Estándar: Puerto 25

  • Se utiliza para la comunicación entre MTA
  • Debe configurarse con STARTTLS cuando sea posible
  • Ejemplo de configuración de Postfix en /etc/postfix/main.cf:

# Outgoing relay settingsrelayhost = [mail.example.com]:25

smtp_tls_security_level = may

smtp_tls_note_starttls_offer = yes

Alternativa si el puerto 25 está bloqueado: Configuración personalizada

  • Algunos proveedores permiten la retransmisión en puertos alternativos
  • Ejemplo:

# Using alternative port for relayrelayhost = [mail.example.com]:587

smtp_tls_security_level = encrypt

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

Ejemplos de configuración para servidores de correo electrónico comunes

Configuración de Postfix (Linux)

Para configurar Postfix para proteger el envío SMTP en el puerto 587:

  1. Editar /etc/postfix/master.cf:

# SMTP submission on port 587submission inet n – y – – smtpd

-o syslog_name=postfix/submission

-o smtpd_tls_security_level=encrypt

-o smtpd_sasl_auth_enable=yes

-o smtpd_tls_auth_only=yes

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o milter_macro_daemon_name=ORIGINATING

  1. Edite /etc/postfix/main.cf para configurar TLS:

# TLS parameterssmtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

smtpd_tls_security_level=may

smtpd_tls_protocols = !SSLv2, !SSLv3

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3

  1. Reiniciar Postfix:
sudo systemctl restart postfix

Microsoft Exchange Server

Para configurar Exchange Server para el envío SMTP seguro:

  1. Abra el Centro de administración de Exchange
  2. Vaya a Flujo de correo > Conectores de recepción
  3. Crear o editar un conector para el envío del cliente
  4. Configurar el conector para:
  • Escuche en el puerto 587
  • Requerir cifrado TLS
  • Requerir autenticación
  • Establecer grupos de permisos apropiados (normalmente, "Usuarios de Exchange")

Prueba de conectividad del puerto y solución de problemas

Para probar la conectividad a un servidor SMTP en un puerto específico, puede utilizar herramientas de línea de comandos simples:

Using Telnet:# Testing port 587

telnet smtp.example.com 587

# You should see something like:

Trying 192.0.2.1…

Connected to smtp.example.com.

Escape character is ‘^]’.

220 smtp.example.com ESMTP ready

Using OpenSSL for TLS testing:

# Testing STARTTLS on port 587

openssl s_client -starttls smtp -crlf -connect smtp.example.com:587

# Testing implicit TLS on port 465

openssl s_client -connect smtp.example.com:465

Using a dedicated SMTP testing tool like swaks:

# Basic SMTP test with authentication

swaks –server smtp.example.com –port 587 –tls –auth-user username –auth-password password –to [email protected] –from [email protected]

Problemas comunes del puerto SMTP y sus soluciones

Tiempos de espera de conexión y fallos de autenticación

Problema: Tiempos de espera de conexión

Sintomas:

  • No se puede establecer conexión con el servidor SMTP
  • El cliente informa errores de "tiempo de conexión agotado"
  • El envío de correo electrónico parece bloquearse indefinidamente

Posibles causas:

  1. ISP o red bloqueando el puerto
  2. Restricciones del cortafuegos
  3. El servidor está inactivo o no se puede acceder a él
  4. Dirección de servidor incorrecta

Soluciones:

  1. Pruebe un puerto alternativo (587, 465 o 2525)
  2. Verifique la configuración del firewall y las políticas de red
  3. Verifique que la dirección del servidor sea correcta
  4. Pruebe en una red diferente para aislar los problemas de bloqueo del ISP
  5. Aumente la configuración del tiempo de espera de conexión en su cliente de correo electrónico

Problema: Fallos de autenticación

Sintomas:

  • Conexión establecida pero falla la autenticación
  • Mensajes de error como “535 Error de autenticación” o “Nombre de usuario/contraseña no válidos”
  • No se puede enviar correo a pesar de la conexión exitosa

Posibles causas:

  1. Nombre de usuario o contraseña incorrecta
  2. Desajuste del método de autenticación
  3. Restricciones de cuenta o políticas de seguridad
  4. Requisitos TLS/SSL no cumplidos antes de la autenticación

Soluciones:

  1. Verificar que las credenciales sean correctas y estén actualizadas
  2. Compruebe qué métodos de autenticación admite el servidor (PLAIN, LOGIN, CRAM-MD5)
  3. Asegúrese de que el cifrado esté configurado correctamente antes de la autenticación
  4. Para las cuentas de Google y Microsoft, es posible que necesite una contraseña específica de la aplicación o habilitar aplicaciones menos seguras
  5. Verifique las restricciones de la cuenta o las limitaciones de IP

Bloqueo de puertos por parte de ISP y redes

El bloqueo de puertos es cada vez más común, especialmente para el puerto 25:

Identificación del bloqueo de puertos

Señales de que estás experimentando un bloqueo de puertos:

  • Los tiempos de espera de conexión ocurren constantemente
  • Los demás servicios de Internet funcionan con normalidad
  • El problema persiste en diferentes clientes de correo electrónico.
  • Los problemas ocurren en una red pero no en otras

Prueba de bloqueo de puertos:

# Use telnet to test connectivitytelnet smtp.example.com 25

# If blocked, you’ll see no response or a timeout

# If open, you’ll see the server’s greeting banner

Soluciones para el bloqueo de puertos

  1. Cambiar a un puerto alternativo:
  • Pruebe el puerto 587 para enviar mensajes
  • Si eso falla, prueba el puerto 465
  • Como último recurso, pruebe el puerto 2525
  1. Utilice una VPN o una red diferente:
  • Las redes móviles pueden tener políticas diferentes a las de los ISP domésticos
  • Las redes corporativas pueden enrutarse a través de un host inteligente
  1. Póngase en contacto con su ISP:
  • Algunos ISP desbloquearán el puerto 25 para clientes comerciales
  • Esté preparado para explicar su necesidad legítima
  1. Utilice un host o relé inteligente:
  • Configure su servidor de correo para que retransmita a través del servidor SMTP de su ISP
  • Utilice un servicio de entrega de correo electrónico de terceros

Problemas de negociación de TLS

Los problemas de TLS pueden ser sutiles y difíciles de solucionar:

Problemas comunes de TLS

  1. Errores de validación del certificado:
  • El certificado del servidor ha expirado
  • El certificado no proviene de una autoridad confiable
  • El nombre de host del certificado no coincide con el nombre del servidor
  • El cliente y el servidor no pueden ponerse de acuerdo sobre los conjuntos de cifrado
  1. Desajustes en la versión del protocolo:
  • Cliente que utiliza una versión de TLS más reciente que la que admite el servidor
  • Servidor que requiere una versión de TLS más reciente que la que admite el cliente
  • Implementaciones de TLS obsoletas con vulnerabilidades

Diagnóstico de problemas de TLS

Utilice OpenSSL para inspeccionar el protocolo de enlace TLS:

# For port 587 with STARTTLSopenssl s_client -starttls smtp -connect smtp.example.com:587 -tls1_2

# For port 465 with implicit TLS

openssl s_client -connect smtp.example.com:465 -tls1_2

# Look for these in the output:

# – Certificate information and expiration

# – Certificate chain validation

# – TLS version and cipher used

Solución de problemas de TLS

  1. Soluciones del lado del servidor:
  • Actualizar certificados SSL/TLS
  • Configurar cadenas de certificados adecuadas
  • Admite versiones modernas de TLS (1.2, 1.3)
  • Deshabilitar conjuntos de cifrado inseguros
  1. Soluciones del lado del cliente:
  • Actualizar el cliente de correo electrónico o las bibliotecas para que admitan TLS moderno
  • Configurar el cliente para que confíe en la autoridad de certificación del servidor
  • Ajuste la configuración de seguridad TLS si es necesario
  1. Soluciones temporales (úselas con precaución):
  • Deshabilitar la validación del certificado solo para pruebas
  • Pruebe diferentes versiones de TLS para aislar problemas de compatibilidad

Más allá de SMTP: Protocolos de correo electrónico relacionados

Alguien se sienta frente a una computadora con flechas que apuntan a los íconos de SMTP, IMAP y POP3.

SMTP no es el único sistema relacionado con el correo electrónico, y es importante comprender el resto del sistema para poder crear sistemas que funcionen de forma eficaz, sostenible y eficiente. Aquí tienes una guía rápida sobre otros factores que debes conocer.

Si bien SMTP gestiona el envío de correo electrónico, la recepción de correo electrónico requiere diferentes protocolos:

POP3 (Protocolo de oficina postal versión 3)

POP3 es uno de los protocolos de recuperación de correo electrónico más antiguos:

  • Función: Descarga mensajes del servidor al cliente
  • Puertos predeterminados: 110 (sin cifrar) y 995 (SSL/TLS)
  • Comportamiento: Normalmente elimina los mensajes del servidor después de la descarga.
  • Ideal para: acceso a un solo dispositivo con almacenamiento de servidor limitado

Una sesión POP3 simple podría verse así:

> telnet mail.example.com 110+OK POP3 server ready

> USER username

+OK

> PASS password

+OK Logged in

> LIST

+OK 2 messages

1 1425

2 32360

> RETR 1

+OK 1425 octets

(… message content …)

> QUIT

+OK Logging out

IMAP (Protocolo de acceso a mensajes de Internet)

IMAP es un protocolo más sofisticado para acceder a buzones de correo:

  • Función: Sincroniza mensajes entre el servidor y los clientes.
  • Puertos predeterminados: 143 (sin cifrar) y 993 (SSL/TLS)
  • Comportamiento: Mantiene los mensajes en el servidor, lo que permite el acceso desde múltiples dispositivos.
  • Ideal para: varios dispositivos que acceden al mismo buzón

Una sesión IMAP podría comenzar:

> telnet mail.example.com 143* OK IMAP4rev1 Server Ready

> A001 LOGIN username password

* OK Logged in

> A002 SELECT INBOX

* 18 EXISTS

* 2 RECENT

* OK [UNSEEN 17] Message 17 is first unseen

* OK [UIDVALIDITY 1428913542] UIDs valid

* FLAGS (Answered Flagged Deleted Seen Draft)

* OK [PERMANENTFLAGS (Answered Flagged Deleted Seen Draft *)] Limited

A002 OK [READ-WRITE] SELECT completed

Cómo interactúan estos protocolos con SMTP

El recorrido de extremo a extremo del correo electrónico implica múltiples protocolos que trabajan juntos:

  1. Redacción y envío (SMTP):
  • El usuario escribe un correo electrónico
  • El cliente de correo electrónico envía a través de SMTP al servidor de envío
  • El mensaje se retransmite vía SMTP al servidor de correo del destinatario.
  1. Almacenamiento y recuperación (POP3/IMAP):
  • El servidor del destinatario almacena el mensaje entrante
  • El destinatario se conecta mediante POP3 o IMAP para acceder a su buzón de correo
  • Los mensajes se descargan (POP3) o se sincronizan (IMAP)
  1. Respuesta (SMTP nuevamente):
  • El destinatario responde al mensaje
  • Su cliente envía la respuesta vía SMTP
  • El ciclo continúa

Configuraciones de puertos para un sistema de correo electrónico completo

Una configuración completa de servidor de correo electrónico requiere varios puertos:

Servicio Protocolo Puerto sin cifrar Puerto cifrado Método de cifrado
Envío de correo SMTP (retransmisión) 25 25 STARTTLS
Envío de correo SMTP 587 587 STARTTLS
Envío seguro SMTPS N/A 465 TLS implícito
Recuperación de correo POP3 110 995 TLS implícito
Acceso al correo IMAP 143 993 TLS implícito

Para configurar un servidor de correo electrónico completo es necesario configurar todos estos puertos de forma adecuada tanto para la funcionalidad de envío como de recepción.

Terminando

Después de explorar las complejidades de los puertos SMTP, surgen varias pautas claras:

  1. El puerto 587 sigue siendo el estándar recomendado para el envío de correo electrónico:
  • Proporciona transmisión segura a través de STARTTLS
  • Tiene un amplio apoyo y se bloquea con menos frecuencia.
  • Sigue los estándares establecidos por la IETF
  1. El puerto 25 debe reservarse únicamente para la comunicación de servidor a servidor:
  • Con frecuencia se bloquea para las conexiones de clientes.
  • Carece de seguridad obligatoria en muchas implementaciones
  • Es el puerto estándar para la transferencia de correo entre servidores.
  1. El puerto 465 sirve como alternativa para el envío seguro:
  • Ofrece TLS implícito que evita ataques de degradación
  • Puede ser necesario para sistemas heredados.
  • Proporciona buena seguridad pero no es el estándar IETF
  1. El puerto 2525 funciona como una opción alternativa:
  • Evita bloqueos de puertos comunes
  • No está estandarizado pero tiene amplio apoyo.
  • Solo debe usarse cuando los puertos estándar no estén disponibles

Para diferentes usuarios de correo electrónico, nuestras recomendaciones de puertos son:

Para usuarios individuales:

  • Configurar clientes de correo electrónico para utilizar el puerto 587 con STARTTLS
  • Asegúrese de que la autenticación adecuada esté habilitada
  • Utilice el puerto 465 solo si lo recomienda específicamente su proveedor de correo electrónico

Para administradores de correo electrónico empresarial:

  • Configurar servidores de correo para aceptar envíos en el puerto 587
  • Requerir cifrado y autenticación TLS
  • Utilice el puerto 25 solo para retransmisión de servidor a servidor con TLS habilitado
  • Mantenga todas las medidas de seguridad y certificados actualizados

Para desarrolladores que integran la funcionalidad de correo electrónico:

  • Implemente el puerto 587 como su puerto SMTP predeterminado
  • Incluir opciones de respaldo para otros puertos (465, 2525)
  • Utilice siempre autenticación y cifrado
  • Manténgase actualizado con las mejores prácticas de seguridad

Para proveedores de servicios de correo electrónico:

  • Admite los puertos 587 y 465 para una máxima compatibilidad
  • Ofrecer el puerto 2525 como opción de respaldo
  • Implementar una seguridad sólida en todos los puertos
  • Manténgase a la vanguardia de los estándares y prácticas de seguridad emergentes

Si sigue estas prácticas recomendadas y se mantiene informado, podrá garantizar que su infraestructura de correo electrónico siga siendo segura y confiable, entregando mensajes con éxito y protegiendo al mismo tiempo la información confidencial contra intercepciones o vulneraciones.

El correo electrónico sigue siendo una de nuestras herramientas de comunicación más importantes, y comprender los matices de los puertos SMTP es esencial para cualquiera que administre sistemas de correo electrónico.

Los protocolos y puertos que hemos explorado representan décadas de evolución en los estándares de Internet, adaptándose a las crecientes amenazas de seguridad y manteniendo la interoperabilidad que hace que el correo electrónico sea tan universal.

Preguntas frecuentes

Respuestas a preguntas comunes sobre este tema.
01

¿Puede el software antivirus bloquear los puertos SMTP?

Sí. Algunas herramientas antivirus y de seguridad incluyen funciones de firewall o análisis de correo electrónico que pueden bloquear o restringir los puertos SMTP, especialmente los puertos 25, 465 o 587. Si falla el envío de correos electrónicos, revise las reglas del firewall de su antivirus o desactive temporalmente el análisis de correo electrónico para ver si se soluciona el problema.

02

¿Los puertos SMTP son diferentes para Gmail, Outlook u otros proveedores?

Los números de puerto son estándar, pero los proveedores pueden recomendar configuraciones diferentes. La mayoría de los servicios, incluidos Gmail y Outlook, admiten el puerto 587 para el envío seguro de correo electrónico, mientras que el puerto 465 también puede estar disponible para conexiones SSL/TLS. Siempre verifique la configuración SMTP del proveedor para confirmar la dirección del servidor y el método de seguridad correctos.