Spam Assassin дает неверный вывод - PullRequest
0 голосов
/ 26 июня 2010

Я хочу использовать Spam-Assassin для оценки почты на предмет спама перед отправкой пользователям. Я использую PHP для выполнения его как процесс, используя exec.

exec("/usr/bin/spamc -R < {$fname}",$score,$rr);

Проблема в том, что возвращаемый результат всегда равен 0/0. Я взял код PHP с сайта PHP Classes. Используемое демонстрационное сообщение ниже

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>free free</title>
<meta content="false" http-equiv="imagetoolbar">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body>
viagra test test free free
</center></body></html>

Подскажите, пожалуйста, в чем может быть проблема

1 Ответ

0 голосов
/ 21 октября 2010

Попробуйте изменить способ передачи содержимого электронной почты, используя proc_open вместо exec:

$email_content = "Put your email content here."

$descriptorspec = array(
    0 => array("pipe", "r"),  // stdin read by child
    1 => array("pipe", "w"),  // stdout written to by child
    2 => array("file", "/tmp/spamd-error-output.txt", "a") // stderr
);

$process = proc_open("/usr/bin/spamc -R", $descriptorspec, $pipes);

if (is_resource($process)) {
    fwrite($pipes[0], $email_content);
    fclose($pipes[0]);
    $full_output = fgets($pipes[1], 1024);
}
...