Postfix+Dovecot+Samba DC+LDAP环境下配置用户邮件别名转发的方法咨询
Postfix+Dovecot+Samba DC+LDAP环境下配置用户邮件别名转发的方法咨询
嘿,针对你在Postfix+Dovecot+Samba DC+LDAP环境下配置用户邮件别名转发的需求,我整理了几个适配这个环境的实操步骤,你可以跟着一步步来:
1. 先在LDAP中配置用户转发属性
因为你的环境是基于Samba DC+LDAP管理用户的,最规范的方式是把转发地址存在用户的LDAP属性里(比如mailForwardingAddress)。你可以用两种方式设置:
方式一:用ldapmodify命令修改LDAP条目
创建一个修改文件forward-mod.ldif,内容如下:
dn: cn=John Doe,ou=Users,dc=example,dc=com changetype: modify add: mailForwardingAddress mailForwardingAddress: jane.doe@example.com
然后执行命令提交修改:
ldapmodify -x -D "cn=Admin,dc=example,dc=com" -W -f forward-mod.ldif
方式二:用Samba工具直接修改用户属性
如果更习惯用Samba的管理工具,直接执行这条命令就行(替换成你的用户名和目标邮箱):
samba-tool user setattr john.doe mailForwardingAddress jane.doe@example.com
2. 配置Postfix通过LDAP查询转发规则
Postfix需要知道怎么从LDAP里读取转发信息,所以要创建一个LDAP查询配置文件,比如/etc/postfix/ldap-aliases.cf,内容如下(替换成你的LDAP服务器信息和绑定账号):
server_host = ldap://你的Samba DC服务器IP或域名 search_base = dc=example,dc=com scope = sub query_filter = (mail=%s) result_attribute = mailForwardingAddress bind_dn = cn=Postfix服务账号,ou=Service Accounts,dc=example,dc=com bind_pw = 你的服务账号密码
接下来修改Postfix的主配置文件/etc/postfix/main.cf,添加或更新别名映射规则:
alias_maps = ldap:/etc/postfix/ldap-aliases.cf virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf
3. 配置Dovecot(可选:保留原邮箱副本)
如果希望转发邮件的同时,原用户的本地邮箱还能收到副本,需要配置Dovecot的Sieve规则:
第一步:让Dovecot读取LDAP的转发属性
修改Dovecot的LDAP配置文件/etc/dovecot/dovecot-ldap.conf.ext,添加一行:
user_attrs = mailForwardingAddress=forwarding_address
第二步:启用Sieve插件并配置默认规则
修改/etc/dovecot/conf.d/15-lda.conf,确保LDA协议启用了Sieve插件:
protocol lda { mail_plugins = $mail_plugins sieve sieve = /etc/dovecot/sieve/default.sieve } lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes
创建默认的Sieve规则文件/etc/dovecot/sieve/default.sieve:
require ["fileinto", "redirect"]; # 获取LDAP中的转发地址 if environment :matches "forwarding_address" "*" { redirect "${1}"; fileinto "INBOX"; # 同时保存到原收件人的收件箱 }
最后编译Sieve规则:
sievec /etc/dovecot/sieve/default.sieve
4. 重启服务生效
配置完成后,重启Postfix和Dovecot让设置生效:
systemctl restart postfix systemctl restart dovecot
额外注意事项
- 确保Postfix的LDAP绑定账号有足够权限读取用户的
mailForwardingAddress属性; - 如果是转发到外部域名邮箱,要检查Postfix的
main.cf中relay_domains或smtpd_recipient_restrictions设置,允许转发到外部域; - 测试时可以用
sendmail -v 原用户邮箱发送测试邮件,查看日志确认转发是否成功。
备注:内容来源于stack exchange,提问作者user1146837
相关产品推荐
相关产品推荐

