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

时间:2015-01-06 13:10:24

标签: php sockets ubuntu fopen spamassassin

我正在使用a basic PHP class在远程服务器上运行SpamAssassin Network Protocol命令。我安装了SpamAssassin following a guide,只是跳过了PostFix部分。

无论我运行什么命令(CHECKREPORTPING等),我只会得到一个空白或空的回复。

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

$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>");

我的写作/阅读有问题吗?我应该在远程服务器上检查哪些设置?

1 个答案:

答案 0 :(得分:0)

原来我的远程连接被拒绝了。我通过运行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,它现在可以正确返回。