Удаленный сетевой протокол SpamAssassin (spamc) возвращает пустой ответ

0

Я использую базовый класс PHP для запуска команд сетевого протокола SpamAssassin на удаленном сервере. Я установил SpamAssassin после руководства, просто пропустив часть 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>");

Я что-то не так с моим письмом/чтением? Какие параметры следует проверять на моем удаленном сервере?

Теги:
sockets
fopen
spamassassin

1 ответ

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.

Мне нужно было явно разрешить локальный IP-адрес с помощью -A. Итак, мне нужно запустить spamd из командной строки на моем удаленном сервере со spamd -D -i my.remote.ip -p 783 -A my.local.ip.

Запуск моего примера теперь показывает warn: spamd: bad protocol: header error: (EOF during headers), из-за того, как я открываю сокет в моем простом примере. Если я использую репозиторий GitHub, который я связал, он теперь корректно вернется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню