我试图设置Postfix来重写发送到example@myhost
的电子邮件的目的地,而不是似乎已经发送到[email protected]
和[email protected]
。 我正在使用LDAP查找将其绑定到FreeIPA,使用绑定到用户帐户的电子邮件地址。
从我的main.cf
文件中的相关行(我认为)(编辑用“ example.com
”replace真实的域和192.0.2.0/24
IP):
alias_maps = hash:/etc/aliases, proxy:ldap:/etc/postfix/ldap-aliases.cf masquerade_domains = myhost.example.com, example.com mydestination = $myhostname, myhost.example.com, example.com, localhost.$mydomain, localhost myhostname = myhost.example.com mynetworks = 192.0.2.0/24, 127.0.0.0/8 relayhost = [otherhost.example.com] smtp_generic_maps = ldap:/etc/postfix/ldap-generic.cf virtual_alias_maps = ldap:/etc/postfix/ldap-generic.cf
ldap-aliases.cf
:
server_host = ldaps://ipa1.example.com search_base = cn=users,cn=accounts,dc=example,dc=com query_filter = (&(uid=%u)(mail=*)) result_attribute = mail bind = yes bind_dn = uid=postfix,cn=sysaccounts,cn=etc,dc=example,dc=com bind_pw = example_password version = 3
ldap-generic.cf
与ldap-aliases.cf
相同,但增加了一行:
domain = myhost.example.com, example.com
到目前为止,发送到[email protected]
地址的电子邮件看起来似乎是[email protected]
和[email protected]
,但只有To:
标题,其中包含[email protected]
。 我希望它显示所有的地址,而不只是第一个。
单独使用alias_maps
只会修改信封收件人而不篡改标题。 看看是否重写邮件标题,或者在Postfix地址重写README 标记为无效 。
Postfix 2.1及更早版本总是重写消息头地址,并将Postfix自己的域信息附加到Postfix认为不完整的地址。 重写邮件标题地址对于本地邮件而言是正确的,但对于远程邮件而言,这是不可取的。
Postfix 2.2版本可以select不重写来自远程SMTP客户端的邮件标题,或者将这些邮件标题中的不完整地址标记为无效。