¿Por qué enviar por los puertos 587 y 465?
El puerto 25 es el que usan los servidores de correo para pasarse mensajes entre sí. Si envías directamente desde el servidor al servidor de correo del destinatario, tienes que ocuparte tú de la reputación de la IP, el DNS inverso y el control del volumen de envío, y el correo enviado desde la IP de un servidor nuevo acaba fácilmente en spam.
Los puertos 587 y 465 son puertos de envío por los que un usuario autenticado entrega su correo. Si entras en un servicio de envío con usuario y contraseña y le entregas el correo, un servidor de envío con la reputación gestionada lo entrega por ti. Es la forma más segura de que correos como confirmaciones de registro, recuperación de contraseña o avisos de pedidos lleguen bien a la bandeja de entrada.
- Puerto 587: se conecta en texto plano y empieza el cifrado con STARTTLS. Es el puerto que usan por defecto la mayoría de servicios y programas.
- Puerto 465: se conecta cifrado con TLS desde el principio. En las pantallas de configuración suele aparecer como SSL o SSL/TLS.
Elegir un servicio de envío
Hay dos grandes tipos de servicios de envío. Uno son los servicios de correo transaccional, que envían en volumen los avisos de webs y apps, y el otro es la función SMTP de la cuenta de correo de empresa o personal que ya usas. En ambos casos, con los cuatro datos de abajo ya tienes todo para configurar.
- Dirección del servidor SMTP: por ejemplo smtp.example.com
- Puerto: 587 (STARTTLS) o 465 (SSL/TLS)
- Nombre de usuario: el usuario o la dirección de correo que te da el servicio
- Contraseña: la contraseña SMTP propia del servicio o una clave API
Para tiendas online o servicios con mucho volumen de envío, un servicio de correo transaccional es cómodo porque gestiona registros de envío, rebotes y bajas. Para unos pocos avisos, basta con el SMTP de una cuenta de correo.
Comprobar la conexión SMTP desde el servidor
Antes de configurar, comprueba que la conexión desde el servidor hasta el servicio de envío funciona. Los comandos de abajo solo comprueban la conexión y no envían correo.
nc -vz smtp.example.com 587
openssl s_client -starttls smtp -connect smtp.example.com:587 -crlf -quiet
openssl s_client -connect smtp.example.com:465 -crlf -quietSi la primera línea muestra succeeded u open y el comando openssl muestra un saludo del servidor que empieza por 220, está listo. Sal con Ctrl+C. Si no tienes el comando nc, instálalo con apt install -y netcat-openbsd en Ubuntu y Debian, y con dnf install -y nmap-ncat en AlmaLinux.
Conectar Postfix al servicio de envío
Para reunir en un solo punto el correo que envían los programas del servidor, los avisos de cron y el comando mail, configura Postfix como relay que lo pasa al servicio de envío. Todo el correo del servidor sale autenticándose por el puerto 587.
Paso 1. Instalar
apt install -y postfix libsasl2-modules mailutilsSi durante la instalación pregunta el tipo de configuración de correo, elige Internet Site y pon tu dominio como nombre de correo. En AlmaLinux 10, instálalo con dnf install -y postfix cyrus-sasl-plain s-nail y actívalo con systemctl enable --now postfix.
Paso 2. Configurar el relay
postconf -e 'relayhost = [smtp.example.com]:587'
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_password_maps = texthash:/etc/postfix/sasl_passwd'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_tls_security_level = encrypt'
postconf -e 'inet_interfaces = loopback-only'inet_interfaces = loopback-only hace que solo acepte correo enviado desde dentro del servidor, para que nadie de fuera pueda usarlo como relay de correo.
Paso 3. Guardar los datos de acceso
echo '[smtp.example.com]:587 SMTP_USER:SMTP_PASSWORD' > /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
systemctl restart postfixSi tu servicio usa el puerto 465, cambia a 465 el puerto en relayhost y sasl_passwd y añade una línea más: postconf -e 'smtp_tls_wrappermode = yes'.
Paso 4. Envío de prueba y revisión del log
echo "VPS mail test" | mail -s "Test from VPS" you@example.com
postqueue -p
journalctl -t postfix/smtp -n 20Si en el log aparece status=sent, el servicio de envío ha recibido el correo. postqueue -p muestra la lista de correos que aún no han salido. Si corregiste los datos de acceso, ejecuta systemctl restart postfix y después vuelve a enviar con postqueue -f.
Configurar SMTP en WordPress y en apps
La mayoría de webs y apps tienen campos de configuración SMTP, así que puedes conectarlas directamente al servicio de envío sin tener Postfix en el servidor. En WordPress, instala un plugin SMTP e introduce los valores de abajo, y los correos de registro y recuperación de contraseña saldrán por ese servicio.
- Host SMTP: la dirección del servicio de envío
- Cifrado: TLS (STARTTLS) con el 587, SSL con el 465
- Puerto: 587 o 465
- Autenticación: activada, con usuario y contraseña
- Dirección del remitente: una dirección de tu dominio (por ejemplo, no-reply@example.com)
Las apps Node.js, PHP y Python también configuran su biblioteca de correo con los mismos valores. Lo limpio es no escribir la contraseña en el código y ponerla en variables de entorno o en un archivo de configuración. La instalación de WordPress está en la guía de instalación de WordPress.
Añadir SPF, DKIM y DMARC al DNS del dominio
El servidor de correo receptor comprueba con registros DNS si el correo viene de verdad de un lugar autorizado por tu dominio. Con estos tres registros, la tasa de llegada a la bandeja de entrada sube mucho.
- SPF: lista de servidores que pueden enviar correo de tu dominio. Pon en un registro TXT el valor include que te da el servicio de envío.
- DKIM: firma electrónica que se añade al correo. Añade tal cual el registro TXT o CNAME que te genera el servicio de envío en su pantalla.
- DMARC: define qué hacer con los correos que no superan SPF y DKIM. Empieza, como abajo, con una configuración que solo envía informes.
_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"Tras unas semanas revisando informes y comprobando que todos los correos pasan, sube a p=quarantine y después a p=reject para impedir la suplantación del dominio.
Recibir correo y siguientes pasos
Para recibir correo en tu dominio, añade al dominio los registros MX de un servicio de hosting de correo. Si el hosting de correo se encarga de recibir y el servicio de envío de los avisos salientes, el servidor se centra solo en la web y las apps.
Enviando a través de un servicio de envío, aunque muevas o recrees el servidor, basta con trasladar unas líneas de configuración para que todo siga igual. Aunque cambie la IP del servidor, la reputación de envío se queda en el servicio, así que la llegada del correo no se resiente ni al mover tu web a otra región.
Los demás puertos ábrelos libremente según tu servicio. Cómo abrir solo los puertos que usas está en la guía básica del firewall, y las normas de uso del servidor en la política de uso.
