有沒有辦法在ASP.Net應用程序中檢查分數?一個類或類似的.Net?那麼其他垃圾郵件過濾器如何呢? - 編輯 我正在尋找一種方法來檢查C#中電子郵件的垃圾郵件分數。spamassassin檢查分數C#代碼
5
A
回答
1
我不完全相信,如果這就是你正在尋找的東西,但它簡化了與代碼項目一SpamAssassin的服務器通信的C#包裝:
。希望幫助!
4
這是我的超級簡化的「只檢查分數」代碼,用於連接到我爲http://elasticemail.com編寫的C#運行的垃圾郵件刺客郵件檢查。只需將SA設置爲在服務器上運行並設置訪問權限即可。
然後你可以使用此代碼來調用它:
public class SimpleSpamAssassin
{
public class RuleResult
{
public double Score = 0;
public string Rule = "";
public string Description = "";
public RuleResult() { }
public RuleResult(string line)
{
Score = double.Parse(line.Substring(0, line.IndexOf(" ")).Trim());
line = line.Substring(line.IndexOf(" ") + 1);
Rule = line.Substring(0, 23).Trim();
Description = line.Substring(23).Trim();
}
}
public static List<RuleResult> GetReport(string serverIP, string message)
{
string command = "REPORT";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} SPAMC/1.2\r\n", command);
sb.AppendFormat("Content-Length: {0}\r\n\r\n", message.Length);
sb.AppendFormat(message);
byte[] messageBuffer = Encoding.ASCII.GetBytes(sb.ToString());
using (Socket spamAssassinSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
spamAssassinSocket.Connect(serverIP, 783);
spamAssassinSocket.Send(messageBuffer);
spamAssassinSocket.Shutdown(SocketShutdown.Send);
int received;
string receivedMessage = string.Empty;
do
{
byte[] receiveBuffer = new byte[1024];
received = spamAssassinSocket.Receive(receiveBuffer);
receivedMessage += Encoding.ASCII.GetString(receiveBuffer, 0, received);
}
while (received > 0);
spamAssassinSocket.Shutdown(SocketShutdown.Both);
return ParseResponse(receivedMessage);
}
}
private static List<RuleResult> ParseResponse(string receivedMessage)
{
//merge line endings
receivedMessage = receivedMessage.Replace("\r\n", "\n");
receivedMessage = receivedMessage.Replace("\r", "\n");
string[] lines = receivedMessage.Split('\n');
List<RuleResult> results = new List<RuleResult>();
bool inReport = false;
foreach (string line in lines)
{
if (inReport)
{
try
{
results.Add(new RuleResult(line.Trim()));
}
catch
{
//past the end of the report
}
}
if (line.StartsWith("---"))
inReport = true;
}
return results;
}
}
用法很簡單:
List<RuleResult> spamCheckResult = SimpleSpamAssassin.GetReport(IP OF SA Server, FULL Email including headers);
它會返回你打的垃圾郵件檢查規則列表中,所得分數的影響。
相關問題
- 1. 檢查C編程代碼
- 2. Sonarquberunner檢查c#代碼
- 3. C++代碼加密檢查
- 4. C++/C Arduino秒錶代碼檢查
- 5. 檢查代碼
- 6. 如何快速檢查和分析錯誤代碼(C++)
- 7. 檢查C#代碼使用的文件
- 8. C#重複代碼與空檢查
- 9. c#網站 - 分析代碼和查詢
- 10. 檢查一個數字是否在C++中是奇數。代碼
- 11. 在C代碼中檢查文本框的代碼值#
- 12. 數學函數python代碼檢查
- 13. C代碼分析
- 14. 如何檢查部分是代碼還是數據(.elf)?
- 15. local.cf spamassassin
- 16. MFC Visual C++代碼來檢查有效的數字條目
- 17. 檢查一個SQL Azure數據庫是可從C#代碼
- 18. 用於檢查素數不工作的C++代碼
- 19. C#代碼契約 - 避免檢查空引用的參數
- 20. xsd:如何檢查數字代碼
- 21. 檢查R函數是否依賴於C/C++編譯代碼的函數?
- 22. 在線SpamAssassin評估/ RFC一致性檢查
- 23. C#可達代碼檢測
- 24. 谷歌代碼檢查
- 25. 代碼檢查工具
- 26. 檢查本機代碼
- 27. QR代碼位置檢查
- 28. 代碼風格檢查器
- 29. 檢查在uninded代碼TFS
- 30. MPI代碼錯誤檢查
查看得分?你可能會對你想要做的更詳細。 http://tinyurl.com/so-hints – 2011-02-18 07:27:08