Configurar Postfix en un CT de Proxmox para enviar correos con Mailjet
En este tutorial explico todo el proceso que he seguido para montar un contenedor LXC en Proxmox, instalar Postfix dentro, configurarlo como servidor SMTP relay usando Mailjet, y finalmente usarlo para que tanto Proxmox VE como Proxmox Backup Server (PBS) envíen correctamente sus correos de notificación usando mi propio dominio.
Nota: Sí, suena a lío. Pero una vez montado, funciona perfecto y es mucho más fiable que usar Gmail, Yahoo o cualquier servidor anti-SMTP moderno.
1. Crear el contenedor (CT) en Proxmox
Pasos para crear el CT
- Crear un CT normal desde Debian 12 (recomendado)
- Asignarle recursos mínimos:
- 512 MB RAM
- 1 vCPU
- 4 GB disco
- En Network, ponerle IP fija (o reservarla en DHCP)
- Darle un hostname sencillo: postfix
Configuración inicial
Una vez instalado, entrar vía consola:
pct enter 101Sustituye
101por tu ID de CT.
Actualizar el sistema:
apt update && apt upgrade -y2. Instalar Postfix
Instalar Postfix y las librerías necesarias para SASL:
apt install postfix libsasl2-modules -yDurante la instalación:
- Elegir: "Satellite system"
- Cuando pida el relayhost, se puede dejar vacío (lo configuraremos después)
3. Configurar Mailjet como relay SMTP
3.1. Editar /etc/postfix/main.cf
Abrir el archivo de configuración principal:
nano /etc/postfix/main.cfConfigurar con estos parámetros:
myhostname = mail.proxmox.jaumeferre.casa
mydomain = proxmox.jaumeferre.casa
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
inet_interfaces = all
inet_protocols = all
relayhost = [in-v3.mailjet.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_fallback_relay =3.2. Crear las credenciales de Mailjet
Crear el archivo de credenciales:
nano /etc/postfix/sasl_passwdAñadir el contenido (reemplaza con tus claves API de Mailjet):
[in-v3.mailjet.com]:587 MJ_API_KEY:MJ_SECRET_KEYGuardar y proteger el archivo:
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd4. Configurar el remitente canónico (root → tu dominio)
Para evitar correos con remitentes como:
root@postfix.192.168.1.17pve@mihost.local
Crear regla de reescritura
nano /etc/postfix/sender_canonicalAñadir:
/.+@.*/ postfix@jaumeferre.casaGenerar el hash:
postmap /etc/postfix/sender_canonicalActivar en la configuración principal
Editar /etc/postfix/main.cf y añadir:
sender_canonical_maps = regexp:/etc/postfix/sender_canonical5. Reiniciar Postfix
Aplicar todos los cambios:
systemctl restart postfixVerificar el estado:
systemctl status postfix6. Probar el envío de correos
Enviar correo de prueba
echo "Correo de prueba desde Postfix + Mailjet" | mail -s "Prueba Mailjet" tu@email.comVer los logs
tail -f /var/log/mail.logCuando veas algo como:
status=sent (250 OK queued...)🎉 ¡Ya funciona!
7. Activar SPF, DKIM y DMARC en tu DNS
Mailjet requiere configurar 3 registros DNS para validar tu dominio:
✔ SPF (Sender Policy Framework)
TXT @ v=spf1 include:spf.mailjet.com ~all✔ DKIM (DomainKeys Identified Mail)
Mailjet te proporcionará algo similar a:
TXT mailjet._domainkey k=rsa; p=XXXXXXXXXXXX✔ Verificación del dominio (opcional)
A veces Mailjet requiere subir un archivo específico a tu dominio para verificar la propiedad.
Importante: Cuando todo esté correctamente configurado, Mailjet lo mostrará en verde en su panel de control.
8. Configurar Proxmox VE para usar el CT SMTP
Configuración en Proxmox VE
- Ir a Datacenter → Notifications → SMTP
- Configurar:
- SMTP server:
192.168.1.17(IP del CT) - SMTP Port:
25 - From address:
postfix@jaumeferre.casa - TLS: Desactivado (el CT ya se encarga)
- Authentication: Ninguna
- SMTP server:
- Enviar correo de prueba
9. Configurar PBS (Proxmox Backup Server)
Configuración en PBS
- Ir a Administration → Notifications → SMTP
- Usar los mismos parámetros que en Proxmox VE
Solución de problemas
Si aparece el error postfix-local: Invalid input (500):
- Borrar configuraciones antiguas
- Reiniciar el sistema de notificaciones
10. Conclusión
Ahora tienes un contenedor LXC dedicado que actúa como un servidor SMTP relay completamente funcional, usando Mailjet, con tu propio dominio y asegurado por SPF/DKIM/DMARC.
Ventajas de esta configuración:
✅ Proxmox VE y PBS pueden enviar alertas de forma fiable
✅ Sin problemas con Gmail ni bloqueos de puertos
✅ Control total sobre el remitente y dominio
✅ Solución barata, ligera y que funciona de maravilla
Resumen de comandos
| Comando | Descripción |
|---|---|
apt install postfix libsasl2-modules -y |
Instalar Postfix con SASL |
postmap /etc/postfix/sasl_passwd |
Generar hash de credenciales |
postmap /etc/postfix/sender_canonical |
Generar hash de reescritura |
systemctl restart postfix |
Reiniciar el servicio |
tail -f /var/log/mail.log |
Ver logs en tiempo real |
pct enter 101 |
Acceder al contenedor |
¿Te ha sido útil?
Ayúdame a mejorar con tu puntuación y comentarios.
💬 Comentarios
Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!