- ¿Cómo configurar un servidor SMTP en Hetzner que envíe correos electrónicos sin generar spam?
- Arquitectura propuesta y consideraciones iniciales
- Pasos para preparar el servidor de envío (Hetzner)
- DKIM, SPF y DMARC: configuración de DNS
- Recibir correos electrónicos en otro servidor y gestionar los rebotes.
- Cómo evitar el spam: Mejores prácticas
- Controla las tasas de envío, las colas y evita la mala reputación.
- Pruebas y herramientas para comprobar la capacidad de entrega
- Ejemplo de proceso completo: Envío desde la aplicación A utilizando Hetzner como relé.
- Consejos adicionales de seguridad y funcionamiento
- Herramientas de código abierto recomendadas para la automatización (gratuitas)
- Enlace a los servicios de la empresa (más de 85 ubicaciones y servicios)
- Punto final
¿Cómo configurar un servidor SMTP en Hetzner que envíe correos electrónicos sin generar spam?
Esta guía explica paso a paso cómo implementar SMTP en un servidor en la nube de Hetzner para enviar correos electrónicos y gestionar su recepción en otro servidor. También abarca configuraciones DNS importantes (SPF, DKIM, DMARC, PTR), autenticación (SASL/TLS), gestión de rebotes y bajas de suscripción, y recomendaciones prácticas para evitar ser incluido en listas negras.
Arquitectura propuesta y consideraciones iniciales
Arquitectura propuesta:
- Servidor de envío (Hetzner Cloud): Instalación Sufijo + OpenDKIM + OpenDMARC + TLS — Responsable del envío de correo electrónico (retransmisión SMTP).
- Servidor de entrada (por ejemplo, su VPS o alojamiento): los registros MX apuntan a este servidor; responsable de entregar y recibir los mensajes entrantes (POP/IMAP/Dovecot o su servicio de correo electrónico).
- Buzón de correo para mensajes rebotados y cancelaciones de suscripción: Los mensajes rebotados se envían a una dirección específica y ese buzón es procesado por el servidor receptor.
- Usuarios/Aplicaciones: Uso AUTENTICACIÓN SMTP (o autorización basada en IP) autenticarse en el servidor Hetzner para poder retransmitir.
Pasos para preparar el servidor de envío (Hetzner)
Instalación de paquetes básicos (Debian/Ubuntu)
Ejemplo para Ubuntu/Debian:
sudo apt update
sudo apt install -y postfix dovecot-core dovecot-imapd opendkim opendkim-tools opendmarc certbot postfix-policyd-spf-python rspamdConfiguración del nombre de host y del PTR
Es necesario configurar el nombre de host en el servidor de reenvío y registrar el DNS inverso en el panel de Hetzner.
sudo hostnamectl set-hostname mail.example.comConsejos para la configuración de Postfix: Cantidad mihostname Configúrelo como mail.example.com e introduzca el valor mail.example.com en el panel Hetzner para la IP inversa.
Configuración de TLS con Let's Encrypt
Emitir un certificado y referenciarlo en la configuración de Postfix:
sudo certbot certonly --standalone -d mail.example.comEn main.cf Sume los siguientes valores:
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = mayConfiguración básica de Postfix (fragmento de main.cf)
Una selección de configuraciones importantes en main.cf:
myhostname = mail.example.com
myorigin = /etc/mailname
mydestination = localhost
relay_domains =
mynetworks = 127.0.0.0/8
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_helo_required = yesExplicación: rechazar_destino_no_autenticado Impide que su servidor se utilice como repetidor abierto; solo los usuarios autorizados o las máquinas conocidas pueden retransmitir.
Habilitación de SASL con Dovecot (para autenticar a los usuarios remitentes)
En el archivo /etc/dovecot/conf.d/10-master.conf Sección autenticación de servicio Configúralo así:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}Para la autenticación, puede usar la contraseña local, una base de datos SQL o LDAP. A continuación, reinicie los servicios:
sudo systemctl restart dovecot postfixDKIM, SPF y DMARC: configuración de DNS
Generación de una clave DKIM con OpenDKIM
Ejemplo de creación de una clave DKIM en el servidor emisor:
sudo mkdir /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s mail -D /etc/opendkim/keys/example.comArchivo correo.txt Generado; contenido del registro TXT que se agregará al DNS: selector = correo electrónico → correo._dominio.ejemplo.com.
Configuración de ejemplo /etc/opendkim.conf (Extracto):
Domain example.com
KeyFile /etc/opendkim/keys/example.com/mail.private
Selector mail
AutoRestart yes
Socket local:/var/spool/postfix/opendkim/opendkim.sockY en /etc/postfix/main.cf Agregar:
milter_default_action = accept
smtpd_milters = unix:/var/spool/postfix/opendkim/opendkim.sock
non_smtpd_milters = $smtpd_miltersRegistro SPF
En el DNS del dominio de muestra:
example.com. IN TXT "v=spf1 ip4:YOUR_HETZNER_IP include:spf.protection.example ?all"O, más estrictamente:
"v=spf1 ip4:YOUR_HETZNER_IP -all"Recomendación: Al comienzo de ~todos O ?todo Úselo para que los errores iniciales no provoquen un rechazo total, y luego sea más estricto.
Registro DMARC
Ejemplo de DMARC en DNS:
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100; adkim=s; aspf=s"Nota: Para empezar, puedes p=ninguno Veamos entonces los informes. p=cuarentena O p=rechazar Activar.
Recibir correos electrónicos en otro servidor y gestionar los rebotes.
Cómo configurar MX para recibir
Ejemplo de un registro MX en DNS:
example.com. IN MX 10 mail-receive.example.orgNota: El registro MX debe apuntar al servidor receptor; el remitente utiliza Hetzner para el correo saliente, por lo que debe configurarse un registro SPF/DKIM para el dominio remitente.
Configuración de la ruta de retorno y gestión de rebotes
Algunos puntos importantes:
- La ruta de retorno debe ser específica para manejar devoluciones; lo mejor es apuntar a un subdominio dedicado como rebote.ejemplo.com Indicar.
- Puedes usar VERP para cualquier correo electrónico:
envelope-from="[email protected]"Para determinar el retorno con mayor precisión.
Procesamiento de rebotes: proceso recomendado:
- Una dirección
[email protected]Créelo y apunte su registro MX al servidor que lo procesa. - Ese servidor con fetchmail / obtener correo electrónico O bien, recuperar directamente el buzón IMAP y tomar medidas con scripts de procesamiento de rebotes.
- Para analizar los rebotes, puede utilizar herramientas como flanqueador O Mail::Delivery::BounceParser Usar.
Ejemplo de procesamiento de rebotes con flanker (Python)
Primera instalación:
pip install flankerEjemplo de script sencillo (lectura desde la entrada estándar y procesamiento):
from flanker import mime
from flanker.utils import bounces
import sys
raw = sys.stdin.read()
msg = mime.from_string(raw)
bounce = bounces.parse(raw)
# classify and store bounce info in database or suppression listPor categoría rebote fuerte (errores 5xx) y rebote suave (4xx) Puede aplicar políticas de eliminación o reintento.
Cómo evitar el spam: Mejores prácticas
Configuración técnica
- PTR Consonante con
mihostnamey A es un disco. - FPS, DKIM, DMARC Habilitar y firmar DKIM.
- El banner HELO/SMTP coincide con el nombre de host.
- TLS habilitado y
smtpd_tls_auth_only = síPara evitar la transmisión sin cifrar. - Evite las direcciones IP con un historial negativo y utilice un rDNS adecuado.
Políticas y listas de contenido
- Siempre desde doble confirmación Úselo para listas de correo electrónico.
- Cada correo electrónico debe tener un enlace para cancelar la suscripción simple y comprensible; en el encabezado de
Cancelar suscripción a la listaUsar:
List-Unsubscribe: <mailto:[email protected]>, <https://example.com/unsubscribe?email=...>- Calentamiento de IP: Envíe una pequeña cantidad desde el primer día y auméntela gradualmente.
- Eliminar o etiquetar direcciones con altas tasas de rebote o quejas.
- Cumplimiento de leyes como CAN-SPAM y GDPR para usuarios europeos.
Controla las tasas de envío, las colas y evita la mala reputación.
Configuración de limitación de concurrencia y retardo de destino de Postfix:
postconf -e "smtp_destination_concurrency_limit = 20"
postconf -e "smtp_destination_rate_delay = 1s"Para políticas más complejas que los demonios políticos como reenvío, política O rspamd Usar.
Gestión de colas con comandos de Postfix:
postqueue -p
postsuper -d ALLDeferredPruebas y herramientas para comprobar la capacidad de entrega
- Para probar SMTP desde swaks Usar:
swaks --to [email protected] --from [email protected] --server mail.example.com --auth LOGIN --auth-user smtpuser --auth-password smtppass --tls- Verifique los encabezados con probador-de-correo.com y MXToolbox Para comprobar la lista negra y SPF/DKIM/DMARC.
- Registros de supervisión con:
tail -f /var/log/mail.logAnálisis de informes DMARC a través de valores calle y ruf Te ayuda a detectar problemas de entrega.
Ejemplo de proceso completo: Envío desde la aplicación A utilizando Hetzner como relé.
- Aplicación A a
correo.ejemplo.com:587Se conecta con el usuariousuario_smtpy contraseña; se realiza la autenticación. - Tras la verificación, el servidor Hetzner genera el correo electrónico y lo firma con DKIM; también se configuran SPF y PTR.
- Si se devuelve, rebota a
[email protected]se envía; el MX para rebote apunta al servidor que realiza el análisis. - La aplicación lee la lista de supresión y desactiva la dirección para evitar rebotes permanentes.
Consejos adicionales de seguridad y funcionamiento
- Asegúrese de que el puerto de salida 25 esté abierto en el servidor (Hetzner a veces tiene restricciones de red).
- Para evitar abusos, la autenticación debe ser obligatoria; nunca mantenga el servidor como un repetidor abierto.
- Envíe los registros a un sistema de monitorización (ELK/Graylog) para analizar los picos de envío o las respuestas de error.
- En caso de un alto volumen de envíos, utilice una IP dedicada y caliéntela gradualmente.
Herramientas de código abierto recomendadas para la automatización (gratuitas)
- Postfix (SMTP)
- Palomar (SASL/IMAP)
- OpenDKIM / OpenDMARC
- Rspamd para filtrar y puntuar
- fetchmail / getmail para obtener rebotes
- Flanker o Mail::Delivery::BounceParser para el procesamiento de rebotes
- postfwd / policyd para precios y políticas
Enlace a los servicios de la empresa (más de 85 ubicaciones y servicios)
Si busca una infraestructura con amplio acceso a la red y diversas ubicaciones, puede utilizar los servicios adecuados para seleccionar el centro de datos más cercano a su público objetivo, lo que le permitirá reducir la latencia y mejorar la capacidad de entrega.
- Más que 85 ubicaciones Un mundo para la selección de centros de datos.
- Servidor en la nube de alto rendimiento con IP dedicada para marketing por correo electrónico y servicios SMTP.
- Servidor anti-DDoS, diversos VPS y soporte para la configuración de redes y seguridad.
Punto final
Si está listo para comenzar, puede explorar los planes de servidores en la nube, IP dedicada y servicios de administración de DNS y seguridad, o contactar al equipo técnico para configuraciones personalizadas, implementación de DKIM/DMARC y administración de rebotes. El equipo de soporte está disponible para brindar orientación y asistencia técnica.









