Tutorial

Relay SMTP Postfix en VPS: emails transaccionales de clientes

Correo profesional8 min de lectura7 pasos

Un dominio de cliente cae en spam o sus confirmaciones de pedido desaparecen: a menudo la causa no es el contenido del mensaje, sino la IP de envío, la de un alojamiento compartido con decenas de otras cuentas. Configurar Postfix como relay SMTP en un VPS dedicado resuelve el problema de raíz, para toda la cartera de clientes, con una única IPv4 limpia cuya reputación controla usted.

Contenido· Por qué la IP compartida del alojamiento compartido sabotea sus emails1/8
  1. 01Por qué la IP compartida del alojamiento compartido sabotea sus emails
  2. 02Lo que gana con un relay SMTP dedicado
  3. 03Arquitectura: relay-only, no un servidor MX completo
  4. 04Requisitos previos antes de empezar
  5. 05Instalación y configuración paso a paso
  6. 06Posinstalación: vigilar la reputación y anticipar los problemas
  7. 07Resolución de problemas: los cinco errores más frecuentes
  8. 08Un relay común para todo el parque, con una reputación controlada

Por qué la IP compartida del alojamiento compartido sabotea sus emails

En un alojamiento compartido cPanel conviven decenas, a veces cientos de cuentas en la misma IPv4. Cada una envía correo con esa IP: newsletters, confirmaciones de pedido, alertas de stock, facturas en PDF. La reputación de la IP es común: si una sola cuenta envía spam, resulta comprometida o supera una cuota de envío, todo el rango de direcciones puede acabar inscrito en una lista negra.

El mecanismo es mecánico: los receptores como Gmail u Outlook evalúan la IP del sobre SMTP. Cuando esa IP figura en una blacklist (Spamhaus, Barracuda, Invaluement…), todos los mensajes que provienen de ella son rechazados o relegados a spam, sin importar la calidad del contenido ni la reputación individual del dominio remitente. En términos SMTP, su cliente recibe un 550 5.7.1 Message rejected o un 421 Try again later directamente en los logs del servidor.

Para una agencia o un revendedor que gestiona una cartera de sitios, la exposición es proporcional al número de clientes alojados en el mismo pool. Una campaña mal configurada de un vecino penaliza a todo el parque. Es una fragilidad estructural del alojamiento compartido que el relay SMTP en VPS elimina por completo.

Lo que gana con un relay SMTP dedicado

  • IPv4 propia y exclusiva: usted es el único remitente y controla íntegramente la reputación de la IP.
  • DKIM firmado en origen: cada mensaje lleva una firma criptográfica verificable, independiente de la infraestructura compartida.
  • SPF y DMARC alineados: los tres registros DNS pueden apuntar a su VPS, lo que satisface las exigencias de Google y Outlook para volúmenes superiores a 5000 emails al día.
  • Un solo relay para todo el parque: los sitios en alojamiento compartido y las aplicaciones Laravel, Node.js o WordPress de la cartera envían todos por localhost:587 del VPS, sin modificar su lógica aplicativa.
  • Control por cuenta SASL: cree un identificador distinto por dominio de cliente; si una cuenta resulta comprometida, la revoca sin afectar a las demás.
  • Independencia de las tarifas de terceros: sale de la dependencia de los proveedores de relay SMTP facturados por tramos de volumen, cuyas tarifas se revalorizaron a lo largo de 2025-2026.
  • Observabilidad completa: /var/log/mail.log le da la traza exacta de cada envío, cada rebote y cada rechazo — imposible de obtener en un alojamiento compartido.

Arquitectura: relay-only, no un servidor MX completo

Es importante distinguir dos funciones. Un servidor MX completo (como Mailcow, tratado en nuestro artículo dedicado) gestiona los buzones, la recepción del correo entrante y la interfaz de webmail. Eso es otra cuestión.

Un relay SMTP hace una sola cosa: retransmitir el envío saliente. No recibe correo externo, no aloja ningún buzón, no expone ninguna interfaz de webmail. Postfix configurado en relay-only es minimalista: escucha únicamente en localhost o 127.0.0.1, acepta las conexiones SASL autenticadas desde las aplicaciones locales o desde los servidores compartidos autorizados, firma con OpenDKIM y transmite al destinatario final.

Esta arquitectura tiene tres ventajas prácticas para una agencia:

Superficie de ataque reducida: sin exposición en el puerto 25 desde Internet, el riesgo de open relay o de abuso es casi nulo.

Sin gestión de buzones: sus clientes conservan sin cambios sus buzones de Gmail, Microsoft 365 o cPanel Mail. Solo cambia la ruta de envío de las aplicaciones.

Despliegue en menos de una hora: el procedimiento siguiente se ha concebido para ser reproducible en cualquier VPS Linux (Debian 12 / Ubuntu 22.04) por un administrador con un nivel de sistema intermedio.

Requisitos previos antes de empezar

Compruebe estos cuatro puntos antes de lanzar la instalación.

1. Un VPS con al menos 1 GB de RAM. Postfix y OpenDKIM son ligeros. Un plan Start basta de sobra para una cartera de 20 a 50 sitios de clientes.

2. Puerto 587 abierto, nunca el puerto 25. Los operadores de VPS cloud bloquean el puerto 25 saliente para luchar contra el spam. Utilice el puerto 587 (SMTP con STARTTLS y autenticación SASL).

3. Un registro PTR configurado en la IPv4 del VPS. El PTR (o rDNS) es el registro que asocia su IPv4 a un nombre de host legible. Gmail y Outlook comprueban sistemáticamente ese PTR y rechazan las conexiones procedentes de IP sin rDNS válido.

4. Un dominio dedicado al relay con acceso a sus DNS. Necesitará publicar un registro SPF y un registro DKIM TXT en ese dominio.

Instalación y configuración paso a paso

  1. Instalar Postfix y OpenDKIM

    Conéctese como root en su VPS y ejecute:

    apt update && apt install -y postfix opendkim opendkim-tools swaks libsasl2-modules

    Durante la instalación, dpkg-reconfigure postfix ofrece un asistente. Elija Internet Site e introduzca el nombre de host de su relay (relay.monagence.com).

  2. Configurar /etc/postfix/main.cf

    Sustituya el contenido de /etc/postfix/main.cf por la configuración siguiente:

    myhostname = relay.monagence.com
    mydomain = monagence.com
    myorigin = $mydomain
    inet_interfaces = all
    inet_protocols = ipv4
    mydestination =
    relayhost =
    mynetworks = 127.0.0.1/32 [::1]/128 VOTRE_IP_MUTUALISE/32
    smtp_use_tls = yes
    smtp_tls_security_level = may
    smtpd_use_tls = yes
    smtpd_tls_cert_file = /etc/letsencrypt/live/relay.monagence.com/fullchain.pem
    smtpd_tls_key_file = /etc/letsencrypt/live/relay.monagence.com/privkey.pem
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_type = cyrus
    smtpd_sasl_path = smtpd
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
  3. Generar y desplegar las claves DKIM con OpenDKIM

    mkdir -p /etc/opendkim/keys/monagence.com
    opendkim-genkey -s mail -d monagence.com -b 2048 -D /etc/opendkim/keys/monagence.com/
    chown -R opendkim:opendkim /etc/opendkim/keys/
    chmod 700 /etc/opendkim/keys/monagence.com/

    Después edite /etc/opendkim.conf para añadir:

    Domain monagence.com
    KeyFile /etc/opendkim/keys/monagence.com/mail.private
    Selector mail
    Socket inet:12301@localhost
    UMask 002
  4. Conectar Postfix con OpenDKIM mediante milter

    Añada estas líneas al final de /etc/postfix/main.cf:

    milter_protocol = 6
    milter_default_action = accept
    smtpd_milters = inet:localhost:12301
    non_smtpd_milters = inet:localhost:12301

    Reinicie los dos servicios:

    systemctl enable --now opendkim
    systemctl restart postfix
  5. Publicar los registros DNS

    Recupere la clave pública DKIM que debe publicar:

    cat /etc/opendkim/keys/monagence.com/mail.txt

    Cree el registro TXT mail._domainkey.monagence.com. Publique el SPF:

    monagence.com IN TXT "v=spf1 ip4:VOTRE_IP_VPS ~all"

    Y el DMARC:

    _dmarc.monagence.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; fo=1"
  6. Probar el relay y validar la firma

    swaks --to [email protected] --server localhost:587 \
      --auth PLAIN --auth-user [email protected] \
      --auth-password VOTREMOTDEPASSE \
      --tls

    Compruebe en /var/log/mail.log la línea status=sent. Para validar la firma DKIM del lado del destinatario, envíe un mensaje a [email protected].

  7. Configurar los sitios de clientes para que usen el relay

    Del lado cPanel / WHM: en WHM, *Exim Configuration Manager* → *Basic Editor* → *Outgoing Mail*, active el smart host con la IPv4 de su VPS, puerto 587.

    Del lado de una aplicación Laravel:

    MAIL_MAILER=smtp
    MAIL_HOST=IP_VPS
    MAIL_PORT=587
    [email protected]
    MAIL_PASSWORD=VOTREMOTDEPASSE
    MAIL_ENCRYPTION=tls

    Del lado WordPress / WooCommerce: instale el plugin *WP Mail SMTP* o *Post SMTP* con los mismos parámetros.

    Del lado Node.js / Nodemailer: host: 'IP_VPS', port: 587, secure: false, auth: { user: '[email protected]', pass: 'VOTREMOTDEPASSE' }.

Para una cartera de más de 20 sitios de clientes, cree una cuenta SASL distinta por dominio de cliente. Si un cliente resulta comprometido, revoca únicamente su identificador sin interrumpir el servicio de los demás. Con OpenDKIM en modo SigningTable, cada dominio de cliente también puede firmar con su propia clave DKIM: la alineación DMARC se vuelve perfecta para cada remitente de la cartera.

Posinstalación: vigilar la reputación y anticipar los problemas

Vigile /var/log/mail.log a diario. Las líneas status=sent indican un encaminamiento correcto. Las líneas status=bounced o status=deferred merecen una lectura inmediata.

Suscríbase a las Postmaster Tools de Google y de Microsoft. Google Postmaster Tools le ofrece un panel de reputación de dominio y de IP. Microsoft SNDS ofrece una vista equivalente para Outlook y Hotmail.

Compruebe las blacklists al menos una vez por semana. La herramienta MXToolbox Blacklist Check contrasta su IP con más de 100 listas en unos segundos.

Limite el caudal por cuenta SASL. Postfix ofrece smtpd_client_message_rate_limit y anvil_rate_time_unit para limitar el número de mensajes por unidad de tiempo.

Resolución de problemas: los cinco errores más frecuentes

1. status=bounced (host said: 550 5.7.1 Message rejected as spam) — su IPv4 está inscrita en una lista negra, o falta el registro PTR. Compruébelo en mxtoolbox.com/blacklists.

2. DKIM=fail — compruébelo con dig TXT mail._domainkey.monagence.com. Asegúrese de que el valor DNS esté en una sola línea, sin cortes.

3. Puerto 587, conexión rechazadaufw status debe mostrar el puerto 587 en ALLOW. Compruebe que Postfix escucha: ss -tlnp | grep :587.

4. Emails alineados con DKIM pero siempre en spam — la alineación DMARC exige que el dominio del From: corresponda al dominio cubierto por DKIM. Configure un selector DKIM por dominio de cliente.

5. /var/log/mail.log silencioso — compruebe que el servicio Postfix está arrancado: systemctl status postfix.

Un relay común para todo el parque, con una reputación controlada

En dos horas de configuración, un VPS Start aloja un relay Postfix listo para encaminar el correo transaccional de toda una cartera de clientes. La IPv4 dedicada permanece bajo su control exclusivo, la firma DKIM es verificable, y tanto SPF como DMARC quedan alineados desde la primera puesta en servicio.

Para ir más lejos, nuestro artículo sobre SPF, DKIM y DMARC cubre los registros DNS en detalle. Si además desea alojar los buzones de correo de sus clientes, nuestra guía de Mailcow describe la implantación de un servidor MX completo en VPS.

Un VPS para el relay de toda su cartera de clientes

Un VPS Power basta para el relay del correo transaccional de 20 a 50 sitios de clientes — IPv4 dedicada incluida, acceso root y puesta en servicio en menos de 10 minutos.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva