SMTP-SINK(1)                                                      SMTP-SINK(1)

名称
       smtp-sink - 并行化 SMTP/LMTP 测试服务器

概述
       smtp-sink [选项] [inet:][主机]:端口 待处理队列

       smtp-sink [选项] unix:路径名 待处理队列

描述
       smtp-sink 监听指定的主机(或地址)和端口,接收网络中的 SMTP 消息后直接丢弃。
       该工具主要用于测试客户端性能,而非协议合规性。

       本程序也可配置为将每次邮件传输记录到文件中。由于磁盘延迟远高于网络延迟,
       此模式会显著降低最大处理性能(可能降低数个数量级)。

       支持通过 IPv4、IPv6 端点或 UNIX 域套接字建立连接,默认使用 IPv4 和 IPv6。
       本程序是 smtp-source(1) 的配套工具。

       注意:这是非官方支持的测试工具,不保证版本间的兼容性。

参数
       -4     仅支持 IPv4。当 Postfix 编译时不支持 IPv6 时此选项无效

       -6     仅支持 IPv6。当 Postfix 编译时不支持 IPv6 时此选项不可用

       -8     禁用 8BITMIME 支持声明

       -a     禁用 SASL 认证支持声明

       -A 延迟
              响应 DATA 命令后等待指定秒数,然后返回 550 状态码强制终止会话。
              此操作会阻止客户端发送结束符"."。设为零则立即终止

       -b 软退回响应
              设置软拒绝响应消息(默认:"450 4.3.0 错误:命令失败")

       -B 硬退回响应
              设置硬拒绝响应消息(默认:"500 5.3.0 错误:命令失败")

       -c     显示实时计数器,在以下情况更新:
                     SMTP 会话结束/收到 QUIT 命令/收到结束符"."

       -C     禁用 XCLIENT 支持

       -d 转储模板
              将每次邮件事务转储到独立文件,文件名通过 strftime(3) 格式化模板生成,
              并附加随机十六进制数(例如:"%Y%m%d%H/%M." 会生成 "2006081203/05.809a62e3")。
              若模板含"/"会自动创建缺失目录。转储格式见下文说明。

              注意:每个进行中的邮件事务都会保持一个独立的捕获文件

       -D 转储模板
              将邮件事务追加到多邮件转储文件,文件名通过 strftime(3) 格式化模板生成。
              若模板含"/"会自动创建缺失目录。转储格式见下文说明。

              注意:每个进行中的邮件事务都会保持一个独立的捕获文件

       -e     禁用 ESMTP 支持声明

       -E     禁用 ENHANCEDSTATUSCODES 支持声明

       -f 命令列表
              以硬错误(5xx)拒绝指定命令(隐含-p选项)
              有效命令:CONNECT, HELO, EHLO, LHLO, MAIL, RCPT, VRFY, DATA, ., RSET, NOOP, QUIT
              多个命令可用空格或逗号分隔,需用引号保护空格

       -F     禁用 XFORWARD 支持

       -h 主机名
              设置 SMTP 问候语/HELO/EHLO 响应中使用的主机名(默认:"smtp-sink")

       -H 延迟
              设置接收 DATA 后的首次读取延迟(秒),配合大测试邮件和小 TCP 窗口
              (通过-T设置)可测试 Postfix 客户端的 write_wait() 实现

       -L     启用 LMTP 模式替代 SMTP

       -m 数量(默认:256)
              设置最大并发连接数限制,防止文件描述符耗尽
              超额连接将保持在 TCP/IP 协议栈队列中

       -M 数量
              接收指定数量的邮件后终止

       -n 数量
              处理指定数量的会话后终止

       -N     禁用 DSN 支持声明

       -p     禁用 ESMTP 命令流水线支持声明

       -P     模拟 CISCO PIX 系统的服务器问候语(隐含-e选项)

       -q 命令列表
              收到指定命令后立即断开连接(不响应)
              有效命令同-f选项

       -Q 命令列表
              收到指定命令后返回 421 响应并断开连接
              有效命令同-f选项

       -r 命令列表
              以软错误(4xx)拒绝指定命令(隐含-p选项)
              有效命令同-f选项

       -R 根目录
              设置进程的根目录(需要超级用户权限,常与-u配合使用)

       -s 命令列表
              将指定命令记录到系统日志
              有效命令同-f选项

       -S 起始字符串
              设置写入转储文件的消息前缀(支持C转义序列:
              \a响铃 \b退格 \f换页 \n换行 \r回车 \t水平制表 \v垂直制表
              \ddd八进制数 \\反斜杠)

       -t 超时(默认:100)
              设置命令接收和响应发送的超时时间(秒)

       -T 窗口大小
              覆盖默认TCP窗口大小(建议值:0-65535,用于解决TCP窗口缩放问题)

       -u 用户名
              设置运行权限(需在打开网络套接字后使用,常与-R配合,
              超级用户权限下必须指定)

       -v     显示SMTP会话详情

       -w 延迟
              设置响应DATA命令前的等待时间(秒)

       -W 命令:延迟[:概率]
              设置指定命令的响应延迟(秒),可选概率参数(1-99)表示:
              实际延迟时间为延迟值乘以随机系数(通过0-99随机数≥概率值的尝试次数确定)

       [inet:][主机]:端口
              监听指定网络接口(默认:所有接口)的TCP端口
              主机和端口可用数字或符号形式表示

       unix:路径名
              监听指定路径的UNIX域套接字

       待处理队列
              设置未完成连接队列的最大长度(参考 listen(2) 系统调用)

转储文件格式
       每条转储消息包含换行符终止的文本行,内容顺序如下:

       · -S 参数指定的前缀字符串(可选)

       · smtp-sink 生成的报头(格式如下)

       · 从SMTP客户端接收的原始消息头和正文

       · 空行

       生成的报头格式:

       X-Client-Addr: 文本
              客户端IP地址(IPv6地址以"ipv6:"前缀标识)
              必填字段

       X-Client-Proto: 文本
              客户端协议类型:SMTP/ESMTP/LMTP
              必填字段

       X-Helo-Args: 文本
              本次邮件事务前最近的HELO/EHLO命令参数
              仅当客户端发送过HELO/EHLO时存在

       X-Mail-Args: 文本
              启动本次邮件事务的MAIL命令参数
              每个事务出现一次

       X-Rcpt-Args: 文本
              本次事务中的所有RCPT命令参数
              按客户端发送顺序排列,每个RCPT对应一条记录

       Received: 文本
              兼容邮件处理软件的三行消息头,格式:
              from HELO参数 ([客户端地址])
                     (若无HELO则显示客户端地址)
              by 主机名 (smtp-sink) with 协议 id 随机数;
                     (主机名来自-h,随机数来自转储文件名)
              RFC 2822 时间戳

参见
       smtp-source(1), SMTP/LMTP 消息生成器

许可
       本软件需随附 Secure Mailer 许可证

作者
       Wietse Venema
       IBM T.J. Watson 研究院
       邮政信箱 704
       Yorktown Heights, NY 10598, 美国

       Wietse Venema
       Google 公司
       纽约第八大道 111 号
       NY 10011, 美国

                                                                  SMTP-SINK(1)