远程 SpamAssassin 网络协议 (spamc) returns 空响应

Remote SpamAssassin network protocol (spamc) returns empty response

我正在使用 a basic PHP class to run the SpamAssassin Network Protocol commands on a remote server. I installed SpamAssassin following a guide,只是跳过了 PostFix 部分。

无论我运行什么命令(CHECKREPORTPING 等),我都只会得到空白或空白的响应。

根据手册,这是应该返回的 PING 的基本示例:SPAMD/1.5 0 PONG\r\n。相反,它是一个空响应。

$socket = fsockopen($hostname = 'my-remote-server-ip', $port = 783, $errno, $errstr);
fwrite($socket, "PING SPAMC/1.5\r\n");
$response = fread($socket,99999);
die("<pre>" . print_r($response,1) . "</pre>");

我的 writing/reading 是不是做错了什么?我应该在我的远程服务器上检查哪些设置?

原来我的远程连接被拒绝了。我通过 运行 spamd -D -i my.remote.ip -p 783 解决了这个问题,它会主动向您显示 spamd 的调试信息。

这个日志告诉我 warn: spamd: unauthorized connection from my.full.local.addr [my.local.ip] at port 54006 at /usr/sbin/spamd line 1271.

我需要使用 -A 明确允许我的本地 IP。 因此,我需要使用 spamd -D -i my.remote.ip -p 783 -A my.local.ip.

从我的远程服务器上的命令行启动 spamd

运行 我的示例现在显示 warn: spamd: bad protocol: header error: (EOF during headers) 错误,因为我在我的简单示例中打开套接字的方式。如果我使用 GitHub repo I linked,它现在 returns 正确。