how to send a copy to another email address of all incoming messages from an email account?(postfix)

Solution 1:

You can simply use recipient_bcc_maps to copy all emails being sent to a specific user (or a specific domain).

For example add the following line to your main.cf (or use postconf for that):

recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_maps

and create a file /etc/postfix/recipient_bcc_maps with the following content:

[email protected]  [email protected]

and run postmap recipient_bcc_maps.

Solution 2:

You can do this by creating two aliases for the account, as follows:

Let's say you have two email addresses: [email protected] and [email protected], and you want mom to get a copy of all of kid's email. In this case, [email protected] and [email protected] would both be accounts, but you would also create the following aliases:

From:                         To:
[email protected]               [email protected]
[email protected]               [email protected]

Postfix will understand this -- the kid -> kid alias does not create a loop (though it looks like it should!), instead it tells Postfix to continue on to delivering to the mailbox even though the mail was already delivered to the alias.

Solution 3:

one solution is to use procmail a different solution is to use ~/.forward file. over the two procmail has far more options and control.

Solution 4:

I suggest using this milter if your postfix storage format is mbox: http://www.dancingfortune.com/projects/archivesmtp/index.php

the advantage is that if a user is authenticated and not using the proper from details his mail will still be caught by this milter while the sender_bcc_maps won't catch it.