Postfix y MySQL · 4 min read · Jan 12, 2026
Usuarios Virtuales Y Dominios Con Postfix, Courier, MySQL Y SquirrelMail (Debian Squeeze) - Página 4
12 Probar Postfix
Para ver si Postfix está listo para SMTP-AUTH y TLS, ejecuta
telnet localhost 25Después de haber establecido la conexión con tu servidor de correo Postfix, escribe
ehlo localhostSi ves las líneas
250-STARTTLSy
250-AUTH LOGIN PLAINtodo está bien:
root@server1:/usr/local/sbin# telnet localhost 25
Intentando 127.0.0.1...
Conectado a localhost.localdomain.
El carácter de escape es '^]'.
220 server1.example.com ESMTP Postfix (Debian/GNU)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Adiós
Conexión cerrada por el host remoto.
root@server1:/usr/local/sbin#Escribe
quitpara volver a la consola del sistema.
13 Población De La Base De Datos Y Prueba
Para poblar la base de datos puedes usar la consola de MySQL:
mysql -u root -pUSE mail;Al menos tienes que crear entradas en las tablas domains y users:
INSERT INTO `domains` (`domain`) VALUES ('example.com');
INSERT INTO `users` (`email`, `password`, `quota`) VALUES ('[email protected]', ENCRYPT('secret'), 10485760);(¡Por favor, asegúrate de que usas la sintaxis ENCRYPT en la segunda instrucción INSERT para cifrar la contraseña!)
Si deseas hacer entradas en las otras dos tablas, eso se vería así:
INSERT INTO `forwardings` (`source`, `destination`) VALUES ('[email protected]', '[email protected]');
INSERT INTO `transport` (`domain`, `transport`) VALUES ('example.com', 'smtp:mail.example.com');Para salir de la consola de MySQL, escribe
quit;Para la mayoría de las personas es más fácil si tienen una interfaz gráfica para MySQL; por lo tanto, también puedes usar phpMyAdmin (en este ejemplo bajo http://192.168.0.100/phpmyadmin/ o http://server1.example.com/phpmyadmin/) para administrar la base de datos mail. Nuevamente, cuando crees un usuario, asegúrate de usar la función ENCRYPT para cifrar la contraseña:

No creo que tenga que explicar más la tabla de dominios y usuarios.
La tabla de reenvíos puede tener entradas como las siguientes:
| source | destination | |
| [email protected] | [email protected] | Redirige correos electrónicos para [email protected] a [email protected] |
| @example.com | [email protected] | Crea una cuenta Catch-All para [email protected]. Todos los correos electrónicos a example.com llegarán a [email protected], excepto aquellos que existan en la tabla de usuarios (es decir, si [email protected] existe en la tabla de usuarios, los correos a [email protected] aún llegarán a [email protected]). |
| @example.com | @anotherdomain.tld | Esto redirige todos los correos electrónicos a example.com al mismo usuario en anotherdomain.tld. Por ejemplo, los correos a [email protected] serán reenviados a [email protected]. |
| [email protected] | [email protected], [email protected] | Reenvía correos electrónicos para [email protected] a dos o más direcciones de correo electrónico. Todas las direcciones de correo electrónico listadas bajo destino reciben una copia del correo electrónico. |
La tabla de transporte puede tener entradas como estas:
| domain | transport | |
| example.com | : | Entrega correos electrónicos para example.com localmente. Esto es como si este registro no existiera en esta tabla en absoluto. |
| example.com | smtp:mail.anotherdomain.tld | Entrega todos los correos electrónicos para example.com a través de smtp al servidor mail.anotherdomain.com. |
| example.com | smtp:mail.anotherdomain.tld:2025 | Entrega todos los correos electrónicos para example.com a través de smtp al servidor mail.anotherdomain.com, pero en el puerto 2025, no 25 que es el puerto predeterminado para smtp. |
| example.com | smtp:[1.2.3.4]
smtp:[1.2.3.4]:2025
smtp:[mail.anotherdomain.tld] | Los corchetes cuadrados evitan que Postfix realice búsquedas del registro MX DNS para la dirección entre corchetes. Tiene sentido para direcciones IP. | | .example.com | smtp:mail.anotherdomain.tld | El correo para cualquier subdominio de example.com se entrega a mail.anotherdomain.tld. | | * | smtp:mail.anotherdomain.tld | Todos los correos electrónicos se entregan a mail.anotherdomain.tld. | | [email protected] | smtp:mail.anotherdomain.tld | Los correos para [email protected] se entregan a mail.anotherdomain.tld. |
Consulta
man transportpara más detalles.
¡Ten en cuenta que el orden de las entradas en la tabla de transporte es importante! Las entradas se seguirán de arriba hacia abajo.
Importante: Postfix utiliza un mecanismo de caché para los transportes, por lo tanto, puede tardar un tiempo hasta que los cambios en la tabla de transporte tengan efecto. Si deseas que tengan efecto de inmediato, ejecuta
postfix reloaddespues de haber realizado tus cambios en la tabla de transporte.
14 Enviar Un Correo Electrónico De Bienvenida Para Crear Maildir
Cuando creas una nueva cuenta de correo electrónico y tratas de obtener correos de ella (con POP3/IMAP) probablemente recibirás mensajes de error diciendo que el Maildir no existe. El Maildir se crea automáticamente cuando llega el primer correo para la nueva cuenta. Por lo tanto, es una buena idea enviar un correo electrónico de bienvenida a una nueva cuenta.
Primero, instalamos el paquete mailx:
apt-get install mailutilsPara enviar un correo electrónico de bienvenida a [email protected], hacemos esto:
mailx [email protected]Se te pedirá el asunto. Escribe el asunto (por ejemplo, Bienvenido), luego presiona ENTER, y en la siguiente línea escribe tu mensaje. Cuando el mensaje esté terminado, presiona ENTER nuevamente para que estés en una nueva línea, luego presiona CTRL+D; si no deseas enviar una copia del correo, presiona ENTER nuevamente:
root@server1:/usr/local/sbin# mailx [email protected]
Asunto: Bienvenido <– ENTER
¡Bienvenido! Diviértete con tu nueva cuenta de correo. <– ENTER
<– CTRL+D
Cc: <– ENTER
root@server1:/usr/local/sbin#
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.