Postfix

Parámetros USE necesarios

Para compilar e instalar Postfix en Gentoo y utilizar el esquema propuesto por este documento son necesarios los siguientes parámetros USE:

USE="berkdb cdb hardened memcached mysql pam sasl sqlite ssl vda"

Instalación

Para instalar Postfix es necesario ejecutar el siguiente comando:

emerge mail-mta/postfix

Configuración básica

Las siguientes opciones deben configurarse en el archivo /etc/postfix/main.cf. Recuerde reemplazar el dominio "i-nis.com.ar" por el dominio del servidor que se está configurando.

myhostname = mail.i-nis.com.ar
mydomain = i-nis.com.ar
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, $virtual_mailbox_maps
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10

Extensiones para direcciones

Extensiones para direcciones permiten codificar información adicional aparte del destinatario en una dirección de correo electrónico válida. El receptor se separa de la información adicional por lo general con un carácter +, pero es esto es configurable. Para habilitar el soporte para las extensiones de direcciones, edite el archivo /etc/postfix/main.cf con el siguiente contenido:

# ADDRESS EXTENSIONS
recipient_delimiter = +
owner_request_special = no

Conexión a la base de datos MySQL

A continuación se describe la manera de configurar Postfix para realizar búsquedas y consultas utilizando la base de datos MySQL creada por la instalación de Postfix Admin. Las siguientes entradas deben agregars al la configuración del archivo /etc/postfix/main.cf:

virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf

virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
    proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
    proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf

virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
    proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

Para habilitar el soporte de cuotas para las cuentas de correo es necesario agregar la siguiente configuración al archivo /etc/postfix/main.cf:

virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Su casilla de correo ya no dispone de espacio, por favor elimine algunos mensajes.
virtual_overquota_bounce = yes

Adicionalmente deben crearse los siguientes archivos:

/etc/postfix/sql/mysql_virtual_alias_maps.cf :

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
#expansion_limit = 100

mysql_virtual_alias_domain_maps.cf:

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'

mysql_virtual_alias_domain_catchall_maps.cf:

user = postfix
password = password
hosts = localhost
dbname = postfix
query  = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'

mysql_virtual_domains_maps.cf:

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
#expansion_limit = 100

mysql_virtual_mailbox_maps.cf:

user = postfix
password = password
hosts = localhost
dbname = postfix
query           = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
#expansion_limit = 100

mysql_virtual_alias_domain_mailbox_maps.cf:

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'

mysql_virtual_mailbox_limit_maps.cf:

user = postfix
password = password
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'

Iniciar el servicio

Para iniciar por primera vez Postfix debe ejecutarse los siguientes comandos:

rc-update add postfix default
rc-service postfix start