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

Posted on in Categories Postfix last updated January 8, 2011

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: [email protected], [email protected], [email protected], postmaster

Save and close the file. The abuse name is the local address which be receiving the mail on the local machine. [email protected] 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
root: [email protected]

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=<[email protected]>, [email protected]
Jan  8 03:56:33 www330 postfix[13210]: p089uXZH013210: from=, size=337, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain []
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=[] [], dsn=2.0.0, stat=Sent (p089uXZH013210 Message accepted for delivery)
Jan  8 03:56:34 www330 postfix[13211]: STARTTLS=client,, version=TLSv1/SSLv3, verify=FAIL, cipher=AES256-SHA, bits=256/256
Jan  8 03:56:36 www330 postfix[13211]: p089uXZH013210: [email protected], ctladdr= (0/0), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=30576, [], dsn=2.0.0, stat=Sent (Thanks)

The above output indicates that mail sent to local root account is forwarded to [email protected] via smtp server called 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.

7 comment

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

  2. Hi
    Thanks for the article.

    What about if I want to forward one single email from one managed smtp to another?
    For example
    [email protected] to [email protected]
    [email protected] to user2(local user)

    Thanks in advance

  3. 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
    bleach:postfix mnewman$ sudo postmap -q [email protected] hash:/etc/postfix/generic
    [email protected]

    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?

  4. Recipient address rejected: User unknown in virtual mailbox table

Leave a Comment