≡ Menu

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

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.

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

Comments on this entry are closed.

  • Tim January 8, 2011, 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?

    • nixCraft January 8, 2011, 10:08 am

      Done! Hope this helps!

  • nader July 6, 2012, 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

  • nader July 9, 2012, 9:36 am

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

    see man 5 virtual

  • Mike Newman September 22, 2012, 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?

  • Brad May 5, 2013, 2:10 pm

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

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

    Recipient address rejected: User unknown in virtual mailbox table