Alterando completamente el destinatario en Postfix

Alterando completamente el destinatario en Postfix

Lo que estoy tratando de lograr es que cualquier correo electrónico que llegue [email protected]se reescriba [email protected]y se entregue a [email protected].

Ambos canonical_mapsfuncionan virtual_alias_mapspara la entrega al destinatario alternativo. Cuando leo eldocme dice que con el canonical_maps, cleanuphace una reescritura completa.

Sin embargo, en la práctica el correo electrónico todavía tiene la todel destinatario original. Entonces, al mirar el correo electrónico en el buzón de Bob, se muestra un correo electrónico para Joe.

De alguna manera siento que me falta algo aquí.

Configuración:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
bounce_queue_lifetime = 2d
canonical_maps = hash:/etc/postfix/canonical
config_directory = /etc/postfix
header_checks = pcre:/etc/postfix/header_checks
home_mailbox = Maildir/
html_directory = /usr/share/doc/postfix/html
inet_interfaces = all
mailbox_size_limit = 0
maximal_queue_lifetime = 4d
milter_default_action = accept
milter_protocol = 2
mydestination = ...
myhostname = ...
mynetworks = ...
myorigin = /etc/mailname
non_smtpd_milters = inet:localhost:8891
readme_directory = /usr/share/doc/postfix
recipient_delimiter = +
relayhost =
smtp_fallback_relay = ...
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_milters = inet:localhost:8891
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access        permit_mynetworks       reject_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
transport_maps = hash:/etc/postfix/transport
virtual_alias_maps = hash:/etc/postfix/virtual

Registros:

Sep 25 09:40:30 server1 postfix/smtpd[28285]: connect from mail-la0-f66.google.com[209.85.215.66]
Sep 25 09:40:31 server1 postfix/smtpd[28285]: 7CA784EDB6: client=mail-la0-f66.google.com[209.85.215.66]
Sep 25 09:40:31 server1 postfix/cleanup[28339]: 7CA784EDB6: message-id=<CAJjncucnGM532xhcn37VAwmwQoYEwOUfE_A33-oyJJH5PqPUcA@mail.gmail.com>
Sep 25 09:40:31 server1 postfix/qmgr[7593]: 7CA784EDB6: from=<[email protected]>, size=1813, nrcpt=1 (queue active)
Sep 25 09:40:32 server1 postfix/smtpd[28285]: disconnect from mail-la0-f66.google.com[209.85.215.66]
Sep 25 09:40:32 server1 postfix/smtp[28593]: 7CA784EDB6: enabling PIX workarounds: disable_esmtp delay_dotcrlf for ...[...]]:25
Sep 25 09:40:33 server1 postfix/smtp[28593]: 7CA784EDB6: to=<[email protected]>, orig_to=<[email protected]>, relay=...[...]:25, delay=1.6, delays=0.45/0/0.42/0.73, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 98F729600E)
Sep 25 09:40:33 server1 postfix/qmgr[7593]: 7CA784EDB6: removed

Respuesta1

Desde mail.log, parece que desea reescribir el correo electrónico desde el cliente remoto. La configuración predeterminada de reescritura de postfix evita que esto suceda.

Extracto deREADME de reescritura de Postfix

Las versiones 2.2 de Postfix le dan la opción de no reescribir los encabezados de los mensajes de clientes SMTP remotos o de etiquetar las direcciones incompletas en dichos encabezados de mensajes como no válidas. Así es como funciona:

  • Postfix siempre reescribe los encabezados de los mensajes de los clientes SMTP locales y del comando sendmail de Postfix, y agrega su propio dominio a las direcciones incompletas. El local_header_rewrite_clientsparámetro controla lo que los clientes SMTP Postfix consideran local (de forma predeterminada, solo direcciones de interfaz de red local).

  • Postfix nunca reescribe las direcciones de encabezado de mensajes de clientes SMTP remotos cuando el remote_header_rewrite_domainvalor del parámetro está vacío (la configuración predeterminada).

  • De lo contrario, Postfix reescribe los encabezados de los mensajes de clientes SMTP remotos y agrega el remote_header_rewrite_domainvalor a las direcciones incompletas. Esta función se puede utilizar para agregar un dominio reservado como "domain.invalid", de modo que las direcciones incompletas no se puedan confundir con direcciones locales.

Entonces, la solución más simple es no dejar el parámetro remote_header_rewrite_domaincon un valor vacío. Debe proporcionar valor a este parámetro con un valor como

remote_header_rewrite_domain = domain.invalid

O puede usar static:allel parámetro on local_header_rewrite_clientspara que postfix considere a todos los clientes remotos como locales.

local_header_rewrite_clients = static:all

Fuente:Documentos oficiales de reescritura de direcciones de Postfix

información relacionada