Logotipo de Bitdoze

Cómo configurar un relay SMTP en un VPS con ZeptoMail

Configura Postfix en Ubuntu para reenviar todos los correos salientes a través de ZeptoMail. Soluciona los problemas de entrega de correo en servidores VPS con CloudPanel o similares.

Dragos

4 min de lectura

Cómo configurar un relay SMTP en un VPS con ZeptoMail

Si ejecutas WordPress (o cualquier aplicación) en un VPS, enviar correo directamente desde el servidor no es fiable. La mayoría de los proveedores de VPS bloquean el puerto 25, y aunque no lo hagan, el correo saliente de un servidor sin configurar acaba en la carpeta de spam. La solución es un relay: enrutar todo el correo saliente a través de un servicio de correo dedicado.

Yo uso ZeptoMail de Zoho. Te dan 10.000 correos gratuitos para empezar, y después cuesta 2,50 $ por cada 10.000 correos (créditos válidos durante 6 meses). Sin suscripción mensual, solo pago por uso. La entrega me ha resultado fiable en varios servidores.

Paso 1: Configura ZeptoMail

Regístrate en ZeptoMail, compra un paquete de créditos y añade tu dominio. Te pedirán añadir registros SPF, DKIM y CNAME en tu DNS. Una vez verificado, ve a Configuration para encontrar el hostname SMTP, el usuario y la contraseña — los necesitarás a continuación.

Paso 2: Instala Postfix

En Hetzner, Postfix viene preinstalado. En un servidor Ubuntu recién instalado:

bash
sudo apt update
sudo apt install -y mailutils

Elige Internet Site durante la instalación e introduce tu dominio (p. ej., yourdomain.com).

Paso 3: Configura Postfix para usar el relay

Edita /etc/postfix/main.cf:

bash
sudo nano /etc/postfix/main.cf

Añade al final:

bash
# ZeptoMail SMTP relay
relayhost = [smtp.zeptomail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
header_size_limit = 4096000
sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

Paso 4: Guarda las credenciales

Crea /etc/postfix/sasl_passwd:

bash
sudo nano /etc/postfix/sasl_passwd

Añade tus credenciales de ZeptoMail:

text
[smtp.zeptomail.com]:587 yourusername:yourpassword

Genera la base de datos hash y protege el archivo:

bash
sudo postmap /etc/postfix/sasl_passwd
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Paso 5: Corrige la dirección del remitente

Sin este paso, ZeptoMail rechazará los correos enviados por WordPress u otras aplicaciones porque el dominio del remitente no coincide con tu dominio verificado.

Crea /etc/postfix/sender_canonical:

bash
/.+/ [email protected]

Crea /etc/postfix/smtp_header_checks:

bash
/From:.*/ REPLACE From: [email protected]

O con un nombre visible:

bash
/From:.*/ REPLACE From: Your Name <[email protected]m>

Usa una dirección de correo del dominio que verificaste en ZeptoMail.

Paso 6: Revisa /etc/mailname

Si el hostname de tu VPS es un subdominio (p. ej., cloud.yourdomain.com), Postfix puede intentar usarlo como dominio de envío. Corrígelo:

bash
sudo nano /etc/mailname

Déjalo solo con el dominio raíz:

text
yourdomain.com

Paso 7: Recarga Postfix

bash
sudo postfix reload

Paso 8: Prueba el envío

bash
echo "test message" | mail -s "test subject" [email protected]

Revisa el log para confirmar la entrega:

bash
tail -f /var/log/mail.log

Un envío correcto tiene este aspecto:

text
postfix/smtp: status=sent (250 Message received)

Una vez que esto funcione, todas las aplicaciones del servidor (WordPress, notificaciones de cron, correos del sistema) se enrutarán automáticamente a través de ZeptoMail.

Alternativas a ZeptoMail

ZeptoMail me funciona bien, pero hay otras opciones según tu volumen y presupuesto:

  • Amazon SES – 0,10 $ por cada 1.000 correos. La más barata a gran escala, pero tienes que gestionar la reputación y la configuración por tu cuenta. Buena opción si ya estás en AWS.
  • Postmark – 15 $/mes por 10.000 correos. Conocido por su entrega rápida y su excelente capacidad de entrega. Más caro, pero sin complicaciones.
  • Resend – Tiene nivel gratuito; 20 $/mes para más volumen. API moderna, popular entre desarrolladores. Relativamente nueva.
  • Brevo (antes Sendinblue) – Desde 9 $/mes. Combina correo transaccional y de marketing si necesitas ambos.

Para un VPS pequeño con algunos sitios WordPress, el modelo de pago por uso de ZeptoMail es difícil de superar en precio. Si envías más de 50.000 correos al mes, Amazon SES se convierte en la opción más barata.