远程 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 部分。
无论我运行什么命令(CHECK
、REPORT
、PING
等),我都只会得到空白或空白的响应。
根据手册,这是应该返回的 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 正确。
我正在使用 a basic PHP class to run the SpamAssassin Network Protocol commands on a remote server. I installed SpamAssassin following a guide,只是跳过了 PostFix 部分。
无论我运行什么命令(CHECK
、REPORT
、PING
等),我都只会得到空白或空白的响应。
根据手册,这是应该返回的 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
.
运行 我的示例现在显示 warn: spamd: bad protocol: header error: (EOF during headers)
错误,因为我在我的简单示例中打开套接字的方式。如果我使用 GitHub repo I linked,它现在 returns 正确。