On Thu, Jul 7, 2011 at 5:25 PM, kashani <kashani-l...@badapple.net> wrote: > On 7/7/2011 2:50 PM, Paul Hartman wrote: >> >> The idea: >> >> Assuming I can't do anything about how Postfix handles the >> Delivered-To header, I'd like to insert a new header entry >> (X-Originally-To: or something like that) into incoming mail before it >> hits the catchall forward, so I can know to whom the email was >> originally addressed... but i don't really know where to begin. >> >> The question: >> >> Are there any postfix gurus out there who can point me in the right >> direction? Thanks in advance for any tips or advice (or if you want to >> tell me that I'm doing it all wrong). > > It should already be there at least in 2.7.4 which is stable unless you've > really tweaked your main.cf. I'd run a postconf | grep enable_orig and see > if it's not set to yes. > > kashani > > http://www.postfix.org/postconf.5.html > > enable_original_recipient (default: yes) > > Enable support for the X-Original-To message header. This header is > needed for multi-recipient mailboxes.
Hi kashani, I actually read about that option when I was trying to make this happen (forgot about it when composing my original message). Googling that option I found that most people were interested in combining multi-recipient messages to one on disk (to save space). Indeed the option is already set to "yes" on my setup, but I still don't get that header. I supposed that it has nothing to do with the address I'm interested in (from the envelope) and instead is looking at the To: name from headers (which is unchanged). Or because my message does not have multiple recipients. But maybe I'm completely misunderstanding what it's all about. Here's what an incoming mail to catchall looks like in my syslog: Jul 4 22:11:10 virtual postfix/smtpd[3032]: connect from mail-iw0-f174.google.com[209.85.214.174] Jul 4 22:11:10 virtual sqlgrey: grey: domain awl match: updating 209.85.214(209.85.214.174), gmail.com Jul 4 22:11:10 virtual postfix/smtpd[3032]: E66CA19F0D: client=mail-iw0-f174.google.com[209.85.214.174] Jul 4 22:11:10 virtual postfix/cleanup[3043]: E66CA19F0D: message-id=<4e127edc.6050...@gmail.com> Jul 4 22:11:11 virtual postfix/qmgr[2633]: E66CA19F0D: from=<paul.hart...@gmail.com>, size=1689, nrcpt=1 (queue active) Jul 4 22:11:11 virtual dovecot: auth: mysql(/var/run/mysqld/mysqld.sock): Connected to database postfixadmin Jul 4 22:11:11 virtual dovecot: lda(catch...@example.com): msgid=<4e127edc.6050...@gmail.com>: saved mail to INBOX Jul 4 22:11:11 virtual postfix/qmgr[2633]: E66CA19F0D: removed Jul 4 22:11:11 virtual postfix/pipe[3045]: E66CA19F0D: to=<catch...@example.com>, orig_to=<x...@example.com>, relay=dovecot, delay=0.22, delays=0.18 /0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service) Jul 4 22:11:41 virtual postfix/smtpd[3032]: disconnect from mail-iw0-f174.google.com[209.85.214.174] So it does run cleanup (and before passing the msg to dovecot) and there is reference to orig_to so at least I know postfix realizes there's a difference. Maybe this should be done by dovecot instead? Here is my main.cf (comment blocks removed): [cut] queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/lib64/postfix data_directory = /var/lib/postfix mail_owner = postfix myhostname = virtual.example.com unknown_local_recipient_reject_code = 550 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail newaliases_path = /usr/bin/newaliases mailq_path = /usr/bin/mailq setgid_group = postdrop html_directory = /usr/share/doc/postfix-2.8.3-r2/html manpage_directory = /usr/share/man sample_directory = /etc/postfix readme_directory = /usr/share/doc/postfix-2.8.3-r2/readme home_mailbox = .maildir/ dovecot_destination_recipient_limit = 1 virtual_transport = dovecot smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domain_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf smtpd_sender_restrictions= reject_non_fqdn_sender smtpd_reject_unlisted_sender = yes smtpd_recipient_restrictions= permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, check_policy_service inet:127.0.0.1:2501 smtpd_milters = unix:/var/run/dk-filter/dk-filter.sock, unix:/var/run/dkim-filter/dkim-filter.sock, inet:localhost:8026 non_smtpd_milters = unix:/var/run/dk-filter/dk-filter.sock, unix:/var/run/dkim-filter/dkim-filter.sock, inet:localhost:8026 inet_protocols = all [cut] As I basically followed the wiki, I have no idea if this config is ordinary or not. :) Thanks again for your help. Thanks, Paul