Cómo configurar un servidor de correo electrónico con Postfix y MySQL
Agentes de entrega local
Postfix viene con dos agentes de entrega local (LDA): local y virtual. El LDA local se utiliza para entregar correo a cuentas de usuario UNIX. El LDA virtual no se preocupa por los usuarios de UNIX, entrega a una bandeja de entrada en una ubicación designada utilizando cualquier ID de usuario (UID) y ID de grupo (GID) designados. Puede configurar Postfix para utilizar diferentes LDA para diferentes dominios e incluso especificar un LDA para cuentas de correo electrónico específicas. Puede utilizar Procmail como LDA, lo que le permite aplicar todo tipo de reglas personalizadas. Pero por ahora, te mostraré cómo configurar el LDA virtual de Postfix para utilizar MySQL para obtener su información de cuenta.
![Cómo configurar un servidor de correo electrónico con Postfix y MySQL - Video](https://i.ytimg.com/vi/sW9gD_qLBcM/hqdefault.jpg)
Configurar Postfix para usar cuentas virtuales de MySQL
Para que Postfix use la misma base de datos de MySQL para entregar a las cuentas virtuales, debe crear tres archivos de configuración que mapeen las direcciones de correo electrónico a valores. Cada uno de estos archivos contiene la información de conexión para su servidor de MySQL, la columna que representa la dirección de correo electrónico y la columna que contiene el resultado. Necesito uno para la ubicación de entrega, uno para el UID y otro para el GID. Los tres ejemplos de código en estos enlaces adjuntos son ejemplos de estos archivos de conexión: créalos con los valores apropiados para su instalación. Puedes darles el nombre que desees, pero deben ser propiedad de root y estar en una ubicación donde Postfix pueda leerlos.
La siguiente tarea es editar /etc/postfix/main.cf para que el agente de entrega virtual pueda usar los valores de la base de datos de MySQL para entregar correo. La Tabla A enumera las configuraciones que deben cambiarse.
Configuración | Qué hace | Cambios de configuración |
---|---|---|
local_recipient_maps | Designa qué cuentas de usuario y dominios son destinatarios válidos para este servidor. | Como vas a tener usuarios virtuales (usuarios que no tienen una cuenta de usuario UNIX real), configura esto como nada. De lo contrario, todo el correo para los usuarios virtuales rebotará:local_recipient_maps = |
mydestination | Designa qué dominios son manejados por el agente de entrega local. | Como vas a utilizar el agente de entrega virtual para todo el correo, debes desactivar esta configuración o el correo rebotará antes de llegar al agente de entrega virtual:mydestination = |
virtual_mailbox_domains | Enumera los dominios que son manejados por el agente de entrega virtual. | Establece esto como la lista de dominios manejados por este servidor:virtual_mailbox_domains = |
virtual_mailbox_base | Ruta base que contiene todas las buzones virtuales. | Establece esto con el mismo valor que la columna "home" predeterminada de la base de datos:virtual_mailbox_base = /var/mail/virtual |
virtual_mailbox_maps | Mapea direcciones de correo electrónico a directorios. | Este es uno de tus mapas de MySQL:virtual_mailbox_maps = |
virtual_uid_maps | Mapea direcciones de correo electrónico a un ID de usuario UNIX. | virtual_uid_maps = |
virtual_gid_maps | Mapea direcciones de correo electrónico a un ID de grupo UNIX. | virtual_gid_maps = |
Después de realizar estos cambios en los archivos de configuración, recarga Postfix escribiendo:# postfix reload
Configurar una cuenta y directorio UNIX virtual
Si te fijas en mi artículo "Ampliar el alcance del correo electrónico de los usuarios con IMAP", verás que el script de creación de tabla tenía algunos valores predeterminados específicos. Definí un ID de usuario predeterminado de 5000, un ID de grupo predeterminado de 5000 y una columna Home de /var/mail/virtual. Ahora debes asegurarte de que estos existan, con la propiedad adecuada, escribiendo:# adduser -M -u 5000 virtual
# mkdir /var/mail/virtual
# chown virtual /var/mail/virtual
Todo el correo se entregará a una bandeja de entrada en el estilo Maildir en /var/mail/virtual, creando los directorios y archivos apropiados al entregar, como usuario UNIX Virtual. El otro valor predeterminado es una cadena de contraseña encriptada: sdtrusfX0Jj66. MySQL utiliza un algoritmo diferente para su función "crypt" que el sistema operativo. Courier-IMAP utiliza la biblioteca crypt del sistema para comprobar si la contraseña coincide con lo que está almacenado en la base de datos. La cadena que proporcioné como predeterminada funciona para una contraseña "CambiarContraseña". En algún momento puedes cambiar la contraseña, pero por ahora "CambiarContraseña" es la contraseña para tus nuevas cuentas.
![](https://newsmatic.com.ar/wp-content/uploads/como-configurar-un-webmail-con-squirrelmail-para-tu-sistema-de-correo-electronico-1-150x150.png)
Agregar cuentas de usuario
Ahora puedes agregar cuentas de usuario reales a MySQL. Para cada cuenta, debes especificar la dirección de correo electrónico completa del usuario en la columna ID y el directorio Maildir (como en /var/mail/virtual) para almacenar los mensajes.
Para satisfacer los RFC para servidores de correo electrónico, debes proporcionar direcciones válidas para las cuentas de postmaster y abuse. Estas pueden enviar correo a tu cuenta de usuario:mysql> INSERT INTO users (id, maildir) VALUES
->('[email protected]','user/'),
->('[email protected]','user/'),
->('[email protected]', 'user/');
Configurar DNS
Ahora deberías tener un servidor de correo electrónico en funcionamiento capaz de enviar y recibir correo electrónico desde y hacia Internet. Sin embargo, hasta que configures las entradas adecuadas del Servicio de Nombres de Dominio (DNS), nada encontrará tu nuevo servidor. Tu servidor de correo electrónico puede alojar correo para muchos dominios o para hosts específicos. Para que el correo se enrute a tu servidor, agrega un registro MX (Mail Exchange) a los servidores de nombres para cada dominio que deseas que el servidor maneje.
Puede llevar hasta 48 horas que los cambios de DNS se propaguen por Internet. He descubierto que muchos sitios grandes (como Hotmail) almacenan en caché las entradas de DNS durante mucho más tiempo, incluso semanas o meses. Para obligar a estos sitios a enviar al servidor de correo electrónico correcto, es posible que necesites configurar el antiguo servidor de correo para que el correo rebote para los dominios que tu nuevo servidor está manejando. Cuando el correo rebota, los servidores de caché buscarán el destino correcto, que es tu nuevo servidor.
Mientras haces pruebas, es recomendable utilizar un nuevo servidor para recibir correo electrónico para un host en particular. Configura la entrada de DNS solo para ese host en particular: host.localdomain.dominio. Luego utiliza todo ese host como el dominio para la dirección de correo electrónico: [email protected]. Una vez que hayas solucionado todos los problemas, puedes configurar el nuevo servidor para manejar correo para todo tu dominio.
Usa tu nuevo servidor de correo electrónico
Ahora puedes configurar tantas direcciones de correo electrónico como desees. En cualquier cliente de correo, configura una nueva cuenta IMAP utilizando la dirección de correo electrónico completa como nombre de usuario y CambiarContraseña como contraseña. Deberías poder enviar correo saliente a través del nuevo servidor siempre que te conectes desde la misma subred.
![](https://newsmatic.com.ar/wp-content/uploads/como-recuperar-informacion-de-un-documento-de-word-que-no-se-abre-150x150.jpg)
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Cómo configurar un servidor de correo electrónico con Postfix y MySQL , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados