Smtp

OpenSMTPD Pipelining 不支持的消息

  • January 16, 2018

我在 docker6.0.2p1-r2容器中使用 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) 是什麼意思?

PIPELINING 是RFC 2920中描述的 SMTP 擴展。如果伺服器支持 PIPELINING,則更改正常的 SMTP 命令和響應方案以允許發送多個命令而無需等待響應,並且響應分批發送而不是在每個命令之後立即發送。

在您的情況下,客戶端正在做一些事情,使 SMTP 伺服器認為客戶端正在使用 PIPELINING,即使伺服器尚未聲明支持它。由於這種預期不匹配可能會產生不穩定的結果,因此伺服器選擇關閉連接。客戶端只有一種方式可以表示使用 PIPELINING,那就是發送新命令而不等待對目前命令的響應。因此,特定的客戶端行為必須是您的 SMTP 伺服器所反對的。

引用自:https://unix.stackexchange.com/questions/392729