2015-08-25 26 views
0

我正在研究一個應用程序,它允許用戶構建電子郵件廣告系列以進行集體發佈(當然,遵循所有良好的非垃圾郵件慣例)。我們希望在那裏加入某種評分系統,以便在他們投入關鍵事物時獲得他們的評分系統,例如「退款保證」或「免費偉哥」,全部大寫主題行等。用戶的廣告系列的垃圾郵件評分

經過大量研究,將它們的電子郵件內容發送給SpamAssassin,獲得分數並將其返回給他們看起來會很好。我只能寫我自己的垃圾郵件檢測,但它無法與SA競爭。

問題是,我無法弄清楚如何使用php與SA交談。我不能只是遞給它一些html,並得到一個數字和一些警告?有沒有其他的開源解決方案呢?

+0

我強烈建議谷歌搜索'的SpamAssassin api'並最終找到https://bitbucket.org/coldclimate/postmarkspamapi_codeigniter/src/ac7e82e71e1be71bfe91616d799f6a0f7f9c1124/Postmark_spam.php?at=default – MonkeyZeus

回答

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的配置和操作並不是怯懦的。除非你花費了TON的工作訓練它,無論是垃圾郵件還是火腿,都很難相信它的Bayes過濾器......至少難以對me

希望這會有所幫助。

+0

偉大的建議,這給了我一個良好的開端。猜猜我真的認爲SA會更友好:/ –

+0

這實際上是一個Perl腳本。您可以在評論中查看上面的建議;我自己也不知道,但是一個可以通過HTTP查詢的簡單API可能相當容易實現。缺點可能是服務不像你本地的SA安裝那樣完全由你來控制。 –