Use /etc/aliases for outgoing mail relayed by postfix with local domain

56,189

Solution 1

I guess you could use a virtual alias.

If example.com is your domain on postfix:

in /etc/postfix/main.cf

virtual_alias_maps = hash:/etc/postfix/virtual

in /etc/postfix/virtual

[email protected]    dave

after editing

postmap hash:/etc/postfix/virtual

It should be working.

If I understood your question correctly, emails to [email protected] will now go to local user dave.

Solution 2

Another solution is to use the recipient_canonical_maps configuration parameter of postfix. Compared to the virtual_alias_maps, the advantage is that myorigin neither needs to be in mydestination nor in virtual_mailbox_maps (which virtual_alias_domains defaults to). Thus, this postfix instance does not become the final destination for myorigin.

Add this to your main.cf:

recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

Then create a file named /etc/postfix/recipient_canonical and enter something like this:

[email protected] [email protected]

Finally hash it.

# postmap /etc/postfix/recipient_canonical

Solution 3

if david is also a local account, then you could have the alias line be local-only, and then set up the david account to do the forwarding. /etc/aliases would be:

root: david

You could then use other postfix rules or a .forward file on the david account to get the mail to gmail.

Share:
56,189

Related videos on Youtube

David Xia
Author by

David Xia

Updated on September 18, 2022

Comments

  • David Xia
    David Xia over 1 year

    I'm using Ubuntu 12.04 with postfix configured as satellite system that relays outgoing mail to Gmail. For sake of example, my registered domain is example.com I want root cronjobs' error output to be mailed to my real [email protected] inbox. I have this relay working correctly.

    But these root cronjobs are set by default to email to [email protected] which isn't a real email address. I have in my /etc/aliases:

    root: [email protected]
    

    example.com isn't listed in postfix's main.cf's mydestination so postfix doesn't think this mail is local. It bypasses processing via /etc/aliases and tries to send to [email protected].

    A workaround is adding MAILTO=david at the top of each cron file. But there are many. Another workaround is to setup [email protected] as a real inbox that forwards to [email protected]. Is there a better way? I.e. is there a way to relay emails that have local domains but still process their addressee with /etc/aliases?

  • MᴀʀɪᴜsᴢS
    MᴀʀɪᴜsᴢS over 10 years
    This works for Centos 6 :) Thx
  • MᴀʀɪᴜsᴢS
    MᴀʀɪᴜsᴢS over 10 years
    This is not working with relaying...