You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:13:08