Transport Table for external servers: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Configuring transport tables to relay emails to a different mail server. In this example I am forwarding all emails for otherdomain.com to smtp.otherdomain.com . You can add as many transport maps as you need. All commands should be run as a user 'zimbra'. After 5.0.9, postfix_transport_maps has been modified a bit, so we'll show both ways. | {{Archive}}={{Article Infobox|{{admin}}|{{ZCS 6.0}}|{{ZCS 5.0}}|}}Configuring transport tables to relay emails to a different mail server. In this example I am forwarding all emails for otherdomain.com to smtp.otherdomain.com . You can add as many transport maps as you need. All commands should be run as a user 'zimbra'. After 5.0.9, postfix_transport_maps has been modified a bit, so we'll show both ways. | ||
''$ zmlocalconfig |grep -i postfix_transport_maps'' | ''$ zmlocalconfig |grep -i postfix_transport_maps'' | ||
Line 30: | Line 30: | ||
The file transportfile.db will be created in this directory. Define the new transport file (original, not *.db one) BEFORE the default one. Run: | The file transportfile.db will be created in this directory. Define the new transport file (original, not *.db one) BEFORE the default one. Run: | ||
''$ zmlocalconfig -e postfix_transport_maps=hash:/opt/zimbra/postfix/conf/transportfile | ''$ zmlocalconfig -e postfix_transport_maps="hash:/opt/zimbra/postfix/conf/transportfile ldap:/opt/zimbra/conf/ldap-transport.cf"'' | ||
Or for Zimbra 5.0.9 and higher: | Or for Zimbra 5.0.9 and higher: | ||
''$ zmlocalconfig -e postfix_transport_maps=hash:/opt/zimbra/postfix/conf/ | ''$ zmlocalconfig -e postfix_transport_maps="hash:/opt/zimbra/postfix/conf/transportfile proxy:ldap:/opt/zimbra/conf/ldap-transport.cf"'' | ||
Finally, make sure that the relay_domains parameter in main.cf contains all domains handled by the server, whether locally or relayed elsewhere: | |||
''$ vi /opt/zimbra/postfix/conf/main.cf | |||
''relay_domains = otherdomain.com, mydomain.com, mydomain.org, hisdomain.net, locallyhandleddomain.com, localaliaseddomain.com'' | |||
Restart Zimbra: | Restart Zimbra: | ||
Line 41: | Line 45: | ||
''zmcontrol start'' | ''zmcontrol start'' | ||
This will forward all emails for | This will forward all emails for the example domains and subdomains to host smtp.otherdomain.com while allowing local domains to continue to be delivered locally. However you'll need to be careful at zimbra upgrades. The modification to main.cf for relay_domains will be overwritten by the upgrade. If you still not able to set the correct transport tables, contact Zimbra Support. | ||
{{Article Footer|ZCS 5.0.9|08/13/2008}} | |||
{{Article Footer|ZCS 6.0.5|04/07/2010}} | |||
[[Category:Configuration]] | [[Category:Configuration]] | ||
[[Category:MTA]] | [[Category:MTA]] |
Latest revision as of 16:16, 27 March 2015
=
Article Information |
---|
This article applies to the following ZCS versions. |
Configuring transport tables to relay emails to a different mail server. In this example I am forwarding all emails for otherdomain.com to smtp.otherdomain.com . You can add as many transport maps as you need. All commands should be run as a user 'zimbra'. After 5.0.9, postfix_transport_maps has been modified a bit, so we'll show both ways.
$ zmlocalconfig |grep -i postfix_transport_maps
This will show you the current transport maps file configuration:
postfix_transport_maps = ldap:/opt/zimbra/conf/ldap-transport.cf
or for Zimbra 5.0.9 and higher (including 6.0):
postfix_transport_maps = proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
Create your transport file (owner/group-owner should be zimbra):
vi /opt/zimbra/postfix/conf/transportfile otherdomain.com :[smtp.otherdomain.com]
You can also add multiple transport maps, for example:
mydomain.com :[mail.otherdomain.com] mydomain.org :[mail.otherdomain.com] hisdomain.net :[mail.otherdomain.com]
In this example all emails for 3 different domains will go to mail.otherdomain.com, so destination will be changed, while user name will remain as in original email address.
Convert the transport file into maptype database file:
$ postmap /opt/zimbra/postfix/conf/transportfile
The file transportfile.db will be created in this directory. Define the new transport file (original, not *.db one) BEFORE the default one. Run:
$ zmlocalconfig -e postfix_transport_maps="hash:/opt/zimbra/postfix/conf/transportfile ldap:/opt/zimbra/conf/ldap-transport.cf"
Or for Zimbra 5.0.9 and higher:
$ zmlocalconfig -e postfix_transport_maps="hash:/opt/zimbra/postfix/conf/transportfile proxy:ldap:/opt/zimbra/conf/ldap-transport.cf"
Finally, make sure that the relay_domains parameter in main.cf contains all domains handled by the server, whether locally or relayed elsewhere:
$ vi /opt/zimbra/postfix/conf/main.cf relay_domains = otherdomain.com, mydomain.com, mydomain.org, hisdomain.net, locallyhandleddomain.com, localaliaseddomain.com
Restart Zimbra:
zmcontrol stop zmcontrol start
This will forward all emails for the example domains and subdomains to host smtp.otherdomain.com while allowing local domains to continue to be delivered locally. However you'll need to be careful at zimbra upgrades. The modification to main.cf for relay_domains will be overwritten by the upgrade. If you still not able to set the correct transport tables, contact Zimbra Support.