2011-02-18 18 views
5

क्या एएसपी.Net एप्लिकेशन में स्कोर देखने का कोई तरीका है? .NET के लिए एक वर्ग या कुछ समान है? वहां अन्य स्पैम फ़िल्टर के बारे में कैसे। - संपादित मैं सी # में ईमेल संदेशों के स्पैम स्कोर की जांच करने का एक तरीका ढूंढ रहा हूं।स्पैमसासिन चेक स्कोर सी # कोड

+0

क्या स्कोर जांचें? आप जो भी करने की कोशिश कर रहे हैं उसके बारे में आप अधिक विस्तृत हो सकते हैं। http://tinyurl.com/so-hints –

+0

रिडवान, क्या आप एक सिस्टम को लागू करना चाहते हैं जो सर्वर से ईमेल प्राप्त करता है और स्पैम क्या है और क्या अच्छा है? यदि हां, तो आप अच्छे और बुरे संदेशों के साथ क्या करना चाहते हैं? –

+0

मैं एक ऐसे उपकरण को लागू करने की कोशिश कर रहा हूं जो ईमेल संदेश के स्पैम स्कोर की जांच करेगा यदि से, विषय और शरीर प्रदान किया जाता है। जब मुझे ईमेल प्राप्त नहीं होता है, लेकिन ईमेल से पहले इसे भेजा जाता है, या ईमेल के स्पैम स्कोर को दिखाने के लिए एक वेब टूल भेजा जाता है। मैंने यह http://www.codeproject.com/KB/recipes/BayesianCS.aspx देखा है लेकिन मेरे लिए यह वास्तव में स्पैम Assasin – Ridvan

उत्तर

1

मैं कर रहा हूँ बिल्कुल यकीन नहीं है कि अगर आप क्या खोज रहे हैं, लेकिन वहाँ एक सी # आवरण कि कोड परियोजना पर एक SpamAssassin सर्वर के साथ संचार को सरल है:

आशा है कि मदद करता है!

4

यहां मेरा सुपर सरलीकृत है "सी # से चलने वाले स्पैम हत्यारे ईमेल जांच से कनेक्ट करने के लिए" स्कोर की जांच करें "कोड जिसे मैंने http://elasticemail.com के लिए लिखा था। सर्वर पर चलाने के लिए बस एसए सेट करें और एक्सेस अनुमतियां सेट करें।

तो फिर तुम इसे कहते हैं इस कोड का उपयोग कर सकते हैं:

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); 

यह आप हिट स्पैम जाँच नियमों की सूची और जिसके परिणामस्वरूप स्कोर प्रभाव वापस आ जाएगी।

संबंधित मुद्दे