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

Reply via email to