BOUNCE(5) BOUNCE(5)
名称
bounce - Postfix 退信消息模板格式
概述
bounce_template_file = /etc/postfix/bounce.cf
postconf -b [template_file]
描述
Postfix bounce(8) 服务器会为无法投递的邮件、延迟邮件、成功投递或地址验证请求生成投递状态通知 (DSN) 消息。
默认情况下,这些通知是根据内置模板生成的,包含消息头和正文内容。站点可以通过 bounce_template_file 配置参数指定自定义的退信模板文件来覆盖默认内容。
本文档首先介绍创建退信模板文件的通用流程,随后详细说明模板格式的具体规范。
通用流程
要创建自定义的退信模板文件:
1. 复制 /etc/postfix/bounce.cf.default 作为临时文件
2. 编辑该临时文件
使用以下命令预览模板中 $name 参数的展开结果:
postconf -b 临时文件
模板中的错误会同时输出到标准错误流和系统日志。
预览时请特别注意延迟邮件通知中时间参数的展开格式。
确认无误后,将模板文件复制到 Postfix 配置目录,并在 main.cf 中添加:
bounce_template_file = /etc/postfix/bounce.cf
模板文件格式
模板文件可定义四种模板:
- failure_template: 用于投递失败的邮件
- delay_template: 用于延迟的邮件
- success_template: 用于成功投递的通知
- verify_template: 用于地址验证
每个模板以 "template_name = <<EOF" 开头,以单独一行 "EOF" 结尾。EOF 可以替换为其他标识符,但不能像 shell 或 Perl 那样加引号。
示例:
# 失败邮件模板
failure_template = <myhostname 的邮件系统。
我们很抱歉地通知您,您的邮件无法送达给一个或多个收件人。原始邮件已附在下方。
如需帮助,请联系 postmaster。
请随信附上本问题报告,您可以删除返回邮件中的原始内容。
邮件系统
EOF
模板使用规范:
o 反斜杠和行首空格都作为字面字符处理
o 在 << 上下文中,$ 是特殊字符,要输出 $ 需使用 $$
o 在 << 上下文外,# 开头的行和空行会被忽略
完整模板示例请参考 Postfix 配置目录中的 bounce.cf.default 文件。
模板头部格式
模板的第一部分是可选的头部定义,部分会成为最终通知的消息头,部分控制通知格式。未指定的头部将使用默认值。
支持的头部:
Charset: 模板内容的 MIME 字符集(需兼容 ASCII)
From: 状态通知的发件人地址
Subject: 返回给发件人的邮件主题
Postmaster-Subject: 发送给管理员的副本邮件主题
头部定义规范:
o 头部名称不区分大小写,但输出时会规范化为标准格式
o 每个头部必须单独成行
o 不支持 $ 参数展开
o 只能包含 ASCII 字符(空字符除外)
模板正文格式
模板的第二部分是通知正文,可以包含 main.cf 参数。除了常规参数外,以下特殊参数会根据后缀进行转换:
delay_warning_time_suffix
以指定单位(seconds/minutes/hours/days/weeks)显示延迟警告时间
maximal_queue_lifetime_suffix
以指定单位显示最大队列生存时间
mydomain
当 smtputf8_enable = yes 时,自动将 ACE 编码(xn--)转换为 UTF-8
(Postfix 3.0+)
myhostname
同上,处理主机名中的国际化字符
正文使用规范:
o 不会包含在发送给管理员的副本中
o 包含非 ASCII 字符时必须指定正确的 Charset 头部
参见
bounce(8), Postfix 投递状态通知
postconf(5), 配置参数
许可证
本软件需遵循 Secure Mailer 许可证条款。
历史
Postfix 退信模板格式最初由 Nicolas Riendeau 开发。
作者
Wietse Venema
IBM T.J. Watson 研究院
邮政信箱 704
美国纽约州约克镇高地市 10598
Wietse Venema
Google 公司
纽约第八大道 111 号
美国纽约州 10011
BOUNCE(5)