Transport con regexp para Postfix

Enviado por el 22/02/2010

Transport con regexp para Postfix

La semana pasada he configurado un servidor Postfix para enviar vía relay a smtp.gmail.com y a smtp.mundo-r.com. Este post carecía de sentido(por la cantidad de información que hay en la red) si no fuese por que debo discriminar el envío dependiendo del destinatario. Nada mejor que aplicar expresiones regulares en Postfix para lograrlo. A modo de apunte personal, dejo los ficheros de configuración.Fichero main.cf[incompleto]#Fichero configuracion Postfix#Alberto Permuy Leal - alberto.permuy(en) gmail.com#Febrero 2010###Configuracion basicaappend_dot_mydomain = yescommand_directory = /usr/sbindata_directory = /var/lib/postfixunknown_local_recipient_reject_code = 550queue_directory = /var/spool/postfixcommand_directory = /usr/sbindaemon_directory = /usr/lib/postfixmail_owner = postfixsetgid_group = postdrop###Redes a las que sirve/recibe correomyorigin = subdominio.dominio.esmydomain = $myoriginmynetworks_style = subnetmynetworks = 127.0.0.0/8, 192.168.0.0/22###Un banner por aquismtpd_banner = ESMTP $mail_name###PATHSsendmail_path = /usr/sbin/sendmailnewaliases_path = /usr/bin/newaliasesxmailq_path = /usr/bin/mailq###Manpages y demashtml_directory = nomanpage_directory = /usr/local/man####Aliasalias_maps = hash:/etc/aliases###TRANSPORTE DE CORREO##transport_maps = regexp:/etc/postfix/transport_regexp###Configuracion para smtp-relay autenticadosmtp_use_tls = yessmtp_tls_CAfile = /etc/postfix/cacert.pemsmtp_sasl_password_maps = hash:/etc/postfix/smtp_passwordssmtp_sasl_auth_enable = yessmtp_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destinationsmtp_sasl_security_options = noanonymoussmtpd_sasl_local_domain =smtp_sasl_auth_enable = yessmtp_sasl_security_options=noanonymousbroken_sasl_auth_clients = yessmtpd_sasl_authenticated_header = yessmtpd_tls_auth_only = nosmtp_tls_note_starttls_offer = yessmtpd_tls_loglevel = 1smtpd_tls_received_header = yessmtpd_tls_session_cache_timeout = 3600stls_random_source = dev:/dev/urandomLa línea "más importante" es transport_maps = regexp:/etc/postfix/transport_regexp , que como podemos "deducir" apunta al fichero transport_regexp.Fichero transport_regexp/dominio.es$/ smtp:smtp.mundo-r.com/^.*$/ smtp:smtp.gmail.com:587Este fichero es muy muy sencillo. Todos los correos con destinatario en @dominio.es se envía directamente por smtp.mundo-r.com y el resto por smtp.gmail.com .Como indicamos en la línea smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwords , el fichero smtp_passwords contiene las credenciales para autenticarse contra los dos servidores de correo.Fichero smtp_passwordssmtp.dominio.es user@smtp.mundo-r.com:password-delusuariosmtp.gmail.com:587 usergmail@gmail.com:password-gmail