Postfix masquerading or changing outgoing SMTP email or mail address
- Angelo Schalley
- Dec, 16, 2010
- Linux, Postfix
- No Comments
Address rewriting allows changing outgoing email ID or domain name itself. This is good for hiding internal user names. For example:
SMTP user: angelo-01
EMAIL ID: angelo@domain.com
Server name: server01.hosting.com
However when angelo-01 send an email from shell prompt or using php it looks like it was send from angelo-01@server01.hosting.com
In some cases internal hosts have no valid Internet domain name, and instead use a name such as localdomain.local or something else. This can be a problem when you want to send mail over the Internet, because many mail servers reject mail addresses with invalid domain names to avoid spam.
Postfix MTA offers smtp_generic_maps parameter. You can specify lookup tables that replace local mail addresses by valid Internet addresses when mail leaves the machine via SMTP.
Open your main.cf file
# vi /etc/postfix/main.cf
Append following parameter
smtp_generic_maps = hash:/etc/postfix/generic
Save and close the file. Open /etc/postfix/generic file:
# vi /etc/postfix/generic
Make sure angelo-01@server01.hosting.com change to angelo@domain.com
angelo-01@server01.hosting.com angelo@domain.com
Save and close the file. Create or update generic postfix table:
# postmap /etc/postfix/generic
Restart postfix:
# /etc/init.d/postfix restart
When mail is sent to a remote host via SMTP this replaces angelo-01@server01.hosting.com by angelo@domain.com mail address. You can use this trick to replace address with your ISP address if you are connected via local SMTP.