Re: Postfix: Can I insert a custom header to incoming mail?

kashani <[email protected]> Thu, 07 Jul 2011 17:41:42 -0700
Newsgroups gmane.linux.gentoo.server
Message-ID <[email protected]>
On 7/7/2011 4:59 PM, Paul Hartman wrote:
> On Thu, Jul 7, 2011 at 5:25 PM, kashani<[email protected]>  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.

I think I've got it figured out and this is your culprit.

http://en.gentoo-wiki.com/wiki/Mail_server_using_Postfix_and_Dovecot#Dovecot_Integration_-_LDA

This is because Postfix adds the x-original-to when it delivers, but not 
when it passes the mail via lmtp to Dovecot. See this Dovecot thread for 
some details.

http://www.dovecot.org/list/dovecot/2011-January/056787.html

The primary benefits of Dovecot LDA seem to be cache files and Sieve.
http://wiki.dovecot.org/LDA/Indexing
http://wiki.dovecot.org/LDA/Sieve

If you aren't using Sieve, I would try is using virtual_transport = 
virtual instead of virtual_transport = dovecot

You might need to change some settings in your Dovecot config to match 
where Postfix will deliver the emails, specifically mail_location = 
maildir:/var/mail/%d/%n/Maildir/:INDEX=/var/mail/%d/%n/indexes

This are the settings I use for Postfix w/ Courier. Should work with 
Dovecot, but again you might need to change things a bit.

# virtual stuff
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:207
virtual_mailbox_base = /var/mail/
virtual_mailbox_domains = 
proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 512400000
virtual_mailbox_maps = 
proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 207
virtual_transport = virtual
virtual_uid_maps = static:207

kashani