Оценка спама для пользовательских кампаний

Я работаю над приложением, которое позволяет пользователям создавать почтовые кампании для массового распространения (конечно, следуя всем хорошим правилам, не связанным со спамом). Мы хотим внедрить какую-то систему начисления баллов, чтобы они включались в них, если они вводят ключевые вещи, такие как "Гарантия возврата денег" или "бесплатная виагра", все заглавные буквы и т. Д.

После долгих исследований, похоже, было бы здорово просто отправить свой контент электронной почты SpamAssassin, получить оценку и вернуть ее им. Я мог бы просто написать свое собственное обнаружение спама, но оно не могло конкурировать с SA.

Проблема в том, что я не могу понять, как использовать php для общения с SA. Разве я не могу просто передать ему html и получить номер и несколько предупреждений назад? Есть ли другое решение с открытым исходным кодом для этого?

1 ответ

Решение

Возможно, слишком прост в реализации, но, возможно, что-то вроде этого будет началом:

<?php

$sa_program = "/usr/local/bin/spamassassin"; //your path to the executable
$mail_message = "/tmp/mail_message";         //file on server

exec("$sa_program < $mail_message", $output, $return);

if (!$return) { // "0" is success in 'Nix
    if (strstr(implode("\n",$output),"X-Spam-Flag: YES")) {
       //it's spam, according to SA
    } else {
       //it's not
    }
}

Я не знаю, можно ли передать ей строковую переменную вместо файла на диске.

Также имейте в виду, что я не проверял счет... вы можете также сделать это ("X-Spam-Status: Yes, score=5.0" --- имейте в виду "Нет", поскольку возможное значение там).

Обратите внимание, что это отличный инструмент, но конфигурация и работа SpamAssassin не для робких. Если вы не потратили ТОННУ времени на его обучение, как на спам, так и на Хэма, трудно доверять его байесовскому фильтру... по крайней мере, мне трудно.

Надеюсь это поможет.

Другие вопросы по тегам