Postfix是否支持像Qmail那样的多级地址扩展(如user-ext1-ext2@example.com)?
Qmail与Postfix的地址扩展处理细节
我来帮你拆解这两款MTA对username-ext1@example.com这类地址扩展格式的处理逻辑,按工具分开说:
Qmail的处理规则
当你把地址扩展分隔符配置为-时,发往username-ext1@example.com的邮件会首先关联到基础用户username,然后按照以下优先级查找转发规则文件:
- 优先尝试用户主目录下的
.qmail-ext1文件,如果存在就用它来处理邮件 - 如果
.qmail-ext1不存在,就回退到默认的.qmail文件
对于多层扩展的地址(比如username-ext1-ext2@example.com),Qmail会采用逐层匹配的逻辑:
- 先找
.qmail-ext1-ext2 - 如果找不到,就尝试
.qmail-ext1 - 最后才会用默认的
.qmail文件
Postfix的处理规则
Postfix同样支持这类地址扩展,默认的分隔符是+,你可以通过修改main.cf里的recipient_delimiter = -参数把分隔符改成-,和Qmail保持一致。它的处理逻辑是:
- 发往
username-ext1@example.com的邮件会被解析到基础用户username,优先查找用户主目录下的.forward-ext1文件,存在则用它处理 - 如果
.forward-ext1不存在,直接回退到默认的.forward文件
和Qmail不同的是,Postfix对多层扩展地址的处理不会逐层匹配:比如username-ext1-ext2@example.com会把ext1-ext2作为完整的扩展部分,只会尝试.forward-ext1-ext2,找不到就直接用默认的.forward,不会去查找.forward-ext1。
内容的提问来源于stack exchange,提问作者Robert Siemer
相关产品推荐
相关产品推荐

