TRIVIAL-REWRITE(8) TRIVIAL-REWRITE(8)
名称
trivial-rewrite - Postfix 地址重写与解析守护进程
概述
trivial-rewrite [通用 Postfix 守护进程选项]
描述
trivial-rewrite(8) 守护进程可处理三类客户端服务请求:
rewrite context address
根据地址重写上下文将地址标准化:
local 将 $myorigin 或 $mydomain 指定的域名附加到不完整地址;
执行 swap_bangpath 和 allow_percent_hack 处理,
并将源路由地址(@site,@site:user@domain)转换为 user@domain 格式
remote 将 $remote_header_rewrite_domain 指定的域名附加到不完整地址。
其他处理逻辑与 local 上下文相同,可防止 Postfix 将本地域名附加到格式错误的远程客户端垃圾邮件中
resolve sender address
将地址解析为(transport, nexthop, recipient, flags)四元组:
transport
使用的投递代理,对应 master.cf 文件条目的首字段
nexthop
目标主机及可选的投递方式信息
recipient
传递给 nexthop 的信封收件人地址
flags
地址类别标识,包含是否需要中继、是否存在问题以及请求是否失败
verify sender address
为地址验证目的解析地址
服务进程管理
trivial-rewrite(8) 服务由 Postfix master(8) 主进程控制。
每个服务可同时处理多个连接。当所有服务进程都处于忙碌状态时,
主进程会创建新服务进程(不超过进程数上限)。每个 trivial-rewrite 服务进程
在处理完至少 $max_use 个客户端请求或空闲 $max_idle 秒后自动终止。
标准
无。本命令不涉及外部交互。
安全性
trivial-rewrite(8) 守护进程不涉及敏感安全操作。默认配置下,
该进程不与任何本地或远程用户交互,可在 chroot 环境中以低权限运行。
诊断
问题与事务记录将输出至 syslogd(8) 或 postlogd(8)。
配置参数
在繁忙的邮件系统中,修改 main.cf 后可能需要较长时间才能生效。
执行 "postfix reload" 命令可加速配置更新。
下文为参数摘要,完整说明及示例请参阅 postconf(5)。
兼容性控制
resolve_dequoted_address (yes)
安全而非精确地解析收件人地址(会检查引号内内容)
Postfix 2.1 及以上版本支持:
resolve_null_domain (no)
将以 "@" 空域结尾的地址视为包含本地主机名,而非直接拒绝
Postfix 2.3 及以上版本支持:
resolve_numeric_domain (no)
将 "user@ipaddress" 解析为 "user@[ipaddress]",而非视为无效地址
Postfix 2.5 及以上版本支持:
allow_min_user (no)
允许发件人或收件人地址首字符为 "-"
地址重写控制
myorigin ($myhostname)
本地发出邮件的默认域名,也是本地邮件的投递目标
allow_percent_hack (yes)
启用 "user%domain" 到 "user@domain" 的格式转换
append_at_myorigin (yes)
为本地提交邮件中不含域名的地址追加 "@$myorigin"
append_dot_mydomain (Postfix >= 3.0: no, Postfix < 3.0: yes)
为本地提交邮件中不含 ".domain" 的地址追加 ".$mydomain"
recipient_delimiter (empty)
用于分隔邮件地址本地部分与扩展名的字符集
swap_bangpath (yes)
启用 "site!user" 到 "user@site" 的格式转换
Postfix 2.2 及以上版本支持:
remote_header_rewrite_domain (empty)
当值非空时,重写或添加远程客户端邮件的消息头,
用指定域名补全不完整地址,并补充缺失的头部字段
路由控制
(以下特性需 Postfix 2.0 及以上版本,早期版本不支持
virtual_transport、relay_transport、
virtual_alias_domains、virtual_mailbox_domains 或 proxy_interfaces)
local_transport (local:$myhostname)
默认投递方式及下一跳目标,适用于:
- mydestination 列出的域
- 匹配 $inet_interfaces 或 $proxy_interfaces 的 [ipaddress] 目标
virtual_transport (virtual)
默认投递方式及下一跳目标,适用于 $virtual_mailbox_domains 列出的域
relay_transport (relay)
默认投递方式及下一跳目标,适用于中继域地址类:
匹配 $relay_domains 的收件人域
default_transport (smtp)
默认投递方式及下一跳目标,适用于默认域地址类:
不匹配 $mydestination、$inet_interfaces、$proxy_interfaces、
$virtual_alias_domains、$virtual_mailbox_domains 或 $relay_domains 的域
parent_domain_matches_subdomains (see 'postconf -d' output)
指定哪些 Postfix 功能会将 "example.com" 模式同时匹配子域,
而不需要显式使用 ".example.com" 模式
relayhost (empty)
非本地邮件的强制下一跳目标(优先级高于收件人地址中的非本地域)
transport_maps (empty)
可选查询表,定义收件人地址到(投递方式,下一跳目标)的映射
Postfix 2.3 及以上版本支持:
sender_dependent_relayhost_maps (empty)
基于发件人覆盖全局 relayhost 参数
Postfix 2.5 及以上版本支持:
empty_address_relayhost_maps_lookup_key (<>)
替代空发件人地址的查询键,用于 sender_dependent_relayhost_maps
Postfix 2.7 及以上版本支持:
empty_address_default_transport_maps_lookup_key (<>)
替代空发件人地址的查询键,用于 sender_dependent_default_transport_maps
sender_dependent_default_transport_maps (empty)
基于发件人覆盖全局 default_transport 参数
地址验证控制
Postfix 2.1 引入的发件人与收件人地址验证功能通过发送
(实际不投递的)探测邮件实现。默认情况下,地址验证探测
使用与常规邮件相同的路由。以下参数可覆盖特定路由行为:
address_verify_local_transport ($local_transport)
覆盖地址验证探测的 local_transport 参数
address_verify_virtual_transport ($virtual_transport)
覆盖地址验证探测的 virtual_transport 参数
address_verify_relay_transport ($relay_transport)
覆盖地址验证探测的 relay_transport 参数
address_verify_default_transport ($default_transport)
覆盖地址验证探测的 default_transport 参数
address_verify_relayhost ($relayhost)
覆盖地址验证探测的 relayhost 参数
address_verify_transport_maps ($transport_maps)
覆盖地址验证探测的 transport_maps 参数
Postfix 2.3 及以上版本支持:
address_verify_sender_dependent_relayhost_maps ($sender_dependent_relayhost_maps)
覆盖地址验证探测的 sender_dependent_relayhost_maps 参数
Postfix 2.7 及以上版本支持:
address_verify_sender_dependent_default_transport_maps ($sender_dependent_default_transport_maps)
覆盖地址验证探测的 sender_dependent_default_transport_maps 参数
其他控制参数
config_directory (see 'postconf -d' output)
Postfix 配置文件 main.cf 和 master.cf 的默认位置
daemon_timeout (18000s)
Postfix 守护进程处理单个请求的最长时限(超时将被监控进程终止)
empty_address_recipient (MAILER-DAEMON)
空地址邮件的默认收件人
ipc_timeout (3600s)
进程间通信通道的超时时限
max_idle (100s)
空闲服务进程自动终止前的最大等待时间
max_use (100)
服务进程自动终止前处理的最大连接数
relocated_maps (empty)
存储已迁移用户/域新联系信息的可选查询表
process_id (read-only)
Postfix 命令或守护进程的进程 ID
process_name (read-only)
Postfix 命令或守护进程的进程名称
queue_directory (see 'postconf -d' output)
Postfix 队列目录的顶级路径
show_user_unknown_table_name (yes)
在"用户未知"响应中显示收件人表名称
syslog_facility (mail)
Postfix 日志的 syslog 设施类型
syslog_name (see 'postconf -d' output)
预置在 syslog 记录进程名称前的标识前缀
(例如将"smtpd"记录为"prefix/smtpd")
Postfix 2.0 及以上版本支持:
helpful_warnings (yes)
记录问题配置的警告日志并提供改进建议
Postfix 3.3 及以上版本支持:
service_name (read-only)
Postfix 守护进程在 master.cf 中定义的服务名称
参见
postconf(5) - 配置参数说明
transport(5) - 传输表格式
relocated(5) - 用户迁移信息表格式
master(8) - 进程管理器
postlogd(8) - Postfix 日志服务
syslogd(8) - 系统日志服务
说明文档
ADDRESS_CLASS_README - Postfix 地址分类指南
ADDRESS_VERIFICATION_README - Postfix 地址验证说明
许可协议
本软件需随附 Secure Mailer 许可证
作者
Wietse Venema
IBM T.J. Watson 研究中心
邮政信箱 704 号
美国纽约州约克镇高地市,邮编 10598
Wietse Venema
Google 公司
纽约第八大道 111 号
美国纽约州,邮编 10011
TRIVIAL-REWRITE(8)