HowTo: Redirect One Users Mail To Another User with Postfix MTA

by on September 26, 2006 · 7 comments· LAST UPDATED January 8, 2011

in

Postfix is an open source mail transfer agent (MTA), for the routing and delivery of email. This post examples how to forward an email to another local or remote email user using Postfix MTA.

It provides a method of redirect mail to another user for both local and remote users. You need to configure /etc/postfix/aliases (or use /etc/aliases) file. The aliases file (read as table) provides a system-wide mechanism to redirect mail for local recipients. The redirections are processed by the Postfix local delivery agent.

Normally, the aliases table is specified as a text file that serves as input to the postalias command. The result, an indexed file in dbm or db format, is used for fast lookup by the mail system. Execute the command newaliases in order to rebuild the indexed file after changing the Postfix alias database.

Open file /etc/postfix/aliases using vi text editor:
# vi /etc/postfix/aliases

Now add line as follows:
abuse: noc@isp.com, bob@isp.com, techgroup@isp.com, postmaster

Save and close the file. The abuse name is the local address which be receiving the mail on the local machine. noc@isp.com is the email address on another domain to forward to (the value can be a username on the local machine or the email address). This can be a single or multiple values separated by commas.

To redirect root email to tom user:
root: tom
Or
root: tom@example.com

Type newaliases command to build new database:
# newaliases
To troublshoot problem further see postfix server log file:
# tail -f /var/log/mailog
Sample outputs

Jan  8 03:56:33 www330 postfix[13209]: p089uXvh013209: from=root, size=29, class=0, nrcpts=1, msgid=<201101080956.p089uXvh013209@www330.nixcraft.net.in>, relay=root@localhost
Jan  8 03:56:33 www330 postfix[13210]: p089uXZH013210: from=, size=337, class=0, nrcpts=1, msgid=<201101080956.p089uXvh013209@www330.nixcraft.net.in>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Jan  8 03:56:33 www330 postfix[13209]: p089uXvh013209: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30029, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p089uXZH013210 Message accepted for delivery)
Jan  8 03:56:34 www330 postfix[13211]: STARTTLS=client, relay=cyberciti.biz.s9a1.psmtp.com., version=TLSv1/SSLv3, verify=FAIL, cipher=AES256-SHA, bits=256/256
Jan  8 03:56:36 www330 postfix[13211]: p089uXZH013210: to=vivek@nixcraft.net, ctladdr= (0/0), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=30576, relay=cyberciti.biz.s9a1.psmtp.com. [202.xxx.yyy.zzz], dsn=2.0.0, stat=Sent (Thanks)

The above output indicates that mail sent to local root account is forwarded to vivek@nixcraft.net via smtp server called cyberciti.biz.s9a1.psmtp.com. If you do not have admin access to the mail server, use the .forward file from your own home directory to forward an email to another account.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 7 comments… read them below or add one }

1 Tim January 8, 2011 at 8:56 am

Hi Vivek !
Nice article! That’s what i’m looking for!
But the last link … .forward … is broken. Could you fix it, please?

Reply

2 nixCraft January 8, 2011 at 10:08 am

Done! Hope this helps!

Reply

3 nader July 6, 2012 at 8:28 am

Hi
Thanks for the article.

What about if I want to forward one single email from one managed smtp to another?
For example
user1@dom1.com to user2@dom2.com
or
user1@dom1.com to user2(local user)

Thanks in advance
Nader

Reply

4 nader July 9, 2012 at 9:36 am

OK, I answering my own question!
I can achive this behaviour by using virtual(5).

see man 5 virtual

Reply

5 Mike Newman September 22, 2012 at 6:24 am

What’s wrong:
bleach:postfix mnewman$ cat aliases
root: mnewman
postmaster: root
bleach:postfix mnewman$ sudo postconf -n | grep ^alias
alias_database = hash:/etc/postfix/aliases
alias_maps = hash:/etc/postfix/aliases
bleach:postfix mnewman$ sudo postmap -q root hash:/etc/postfix/aliases
mnewman
bleach:postfix mnewman$ sudo postmap -q mnewman@bleach.local hash:/etc/postfix/generic
mike.g.newman@gmail.com

But, it doesn’t happen. Mail sent to mnewman just ends up in the local mailbox:

Sep 22 13:23:24 bleach postfix/pickup[2899]: A19BF350A52B: uid=502 from=
Sep 22 13:23:24 bleach postfix/cleanup[2995]: A19BF350A52B: message-id=
Sep 22 13:23:24 bleach postfix/qmgr[2898]: A19BF350A52B: from=, size=301, nrcpt=1 (queue active)
Sep 22 13:23:24 bleach postfix/local[2997]: A19BF350A52B: to=, orig_to=, relay=local, delay=0.1, delays=0.09/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)

What have I done wrong?

Reply

6 Brad May 5, 2013 at 2:10 pm

Is there a way to redirect email sent from a user to a manager for review and acceptance?

Reply

7 Recipient address rejected: User unknown in virtual mailbox table October 1, 2013 at 8:15 pm

Recipient address rejected: User unknown in virtual mailbox table

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , , , , , , , , ,

Previous post:

Next post: