OpenSMTPD 管道处理不支持的消息

OpenSMTPD 管道处理不支持的消息

6.0.2p1-r2在 docker 容器中使用 OpenSMPTD 6.0(从 alpine 存储库安装)从 PHP 应用程序发送电子邮件。一切正常,但有时我会在 opensmptd 日志中看到以下消息:

debug: smtp: new client on listener: 0x55add3432e80
bb34e808f0b8be85 smtp event=connected address=127.0.0.1 host=localhost
bb34e808f0b8be85 smtp event=bad-input result="500 5.5.1 Invalid command: Pipelining not supported"
bb34e808f0b8be85 smtp event=closed reason=quit
debug: smtp: 0x55add3439100: deleting session: done

我的 smptd.conf:

listen on 0.0.0.0
table aliases db:/etc/smtpd/aliases.db
expire 4d
bounce-warn 1h, 6h, 2d
max-message-size 35M
accept from any for any relay

此消息 ( 500 5.5.1 Invalid command: Pipelining not supported) 是什么意思?

答案1

PIPELINING 是 SMTP 扩展,描述于RFC 2920。如果服务器支持 PIPELINING,则正常的 SMTP 命令和响应方案将更改为允许发送多个命令而无需等待响应,并且可以批量发送响应,而不是在每个命令之后立即发送响应。

在您的情况下,客户端正在执行一些操作,使 SMTP 服务器认为客户端正在使用 PIPELINING,即使服务器尚未声明支持它。由于这种期望不匹配可能会产生不稳定的结果,因此服务器选择关闭连接。客户端只有一种方式可以表示使用 PIPELINING,即发送新命令而不等待对当前命令的响应。因此,该特定客户端行为必定是您的 SMTP 服务器所反对的。

相关内容