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

Postfix将别名域邮件中继至主服务器的配置问题

Postfix将别名域邮件中继至主服务器的配置问题

嘿,我刚好碰到过类似的Postfix配置坑,给你几个靠谱的解决方案,不用手动加一大堆用户到别名映射里:

核心问题分析

你当前把virtual_example.org设为virtual_alias_domains,同时只在virtual_alias_maps里配置了webmaster@的别名。这会让Postfix认为该域所有收件人都要在别名映射里匹配,找不到就会触发“User unknown in relay recipient table”错误,还会把所有未知用户的邮件转去webmaster@——这就是同域用户互发邮件出错的根源。


方案一:用transport_maps直接中继整个域(推荐)

这个方法最直接,把目标虚拟域改成中继域,指定所有邮件转发到主邮件服务器:

  1. 修改Postfix主配置(main.cf)
    先把virtual_example.org从virtual_alias_domains移到relay_domains,然后启用transport_maps:
    # 移除virtual_alias_domains里的virtual_example.org,换成下面的配置
    relay_domains = virtual_example.org
    transport_maps = hash:/etc/postfix/transport
    
  2. 配置transport规则
    编辑/etc/postfix/transport文件,添加一行指定该域的转发目标:
    virtual_example.org smtp:[main-mail-server.example.com]
    
    • 方括号[]是强制Postfix直接连接指定服务器,不查询MX记录;如果主服务器有正常的MX配置,可以去掉括号。
  3. 生成哈希表并重启Postfix
    postmap /etc/postfix/transport
    systemctl restart postfix
    

方案二:保留别名映射的同时中继剩余邮件

如果还需要保留webmaster@处理退信的功能,可以用正则匹配的virtual_maps,先匹配特定别名,剩下的全部转发:

  1. 修改main.cf的virtual_alias_maps配置
    换成支持正则的映射文件:
    virtual_alias_domains = virtual_example.org
    virtual_alias_maps = regexp:/etc/postfix/virtual_regexp
    
  2. 编辑正则映射文件
    打开/etc/postfix/virtual_regexp,添加两行:
    /^webmaster@virtual_example.org$/ webmaster@your-main-domain.com
    /.+@virtual_example.org/ smtp:[main-mail-server.example.com]
    
    • 第一行优先匹配退信专用的webmaster@,转发到你指定的地址;
    • 第二行用正则匹配该域所有其他地址,直接转发到主邮件服务器。
  3. 重启Postfix生效
    systemctl restart postfix
    

验证配置是否生效

可以用Postfix自带的查询命令测试:

# 测试方案一的transport映射
postmap -q virtual_example.org /etc/postfix/transport
# 测试方案二的正则别名映射
postmap -q user2@virtual_example.org /etc/postfix/virtual_regexp

如果返回对应的转发规则,就说明配置没问题了。

备注:内容来源于stack exchange,提问作者RubbelDeCatc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:58:13