2017-11-28 11 views
0

Ich erfasse nur alle gültigen E-Mail-Adressen von E-Mail-Körper mit der unten genannten Methode.Wie wird das Signaturbild entfernt, während der E-Mail-Text analysiert wird?

public static IEnumerable<string> ParseAllEmailAddressess(string data) 
    { 
     HashSet<String> emailAddressess = new HashSet<string>(); 
     Regex emailRegex = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", RegexOptions.IgnoreCase); 
     MatchCollection emailMatches = emailRegex.Matches(data); 
     foreach (Match emailMatch in emailMatches) 
     { 
      emailAddressess.Add(emailMatch.Value); 
     } 
     return emailAddressess; 
    } 

Das Problem hier ist die Aussicht Signature Bild in eine zufällige E-Mail-Adresse so etwas wie ([email protected]) umwandelt. Und meine Methode betrachtet es als gültige E-Mail-Adresse und erfasst sie. Ich möchte diese E-Mail-Adresse entfernen, während ich den E-Mail-Text analysiere.

Ich kann die E-Mail-Adresse mit teilen. before @ site und verwende den ersten Index, um die Image-Erweiterung ".png" zu finden, um gültige E-Mails zu identifizieren oder nicht. Aber ich denke es ist nicht sehr effizient. Würden Sie den Inhalt des Streifensignaturimages etwas regulieren, wäre das schnell.

Jede Hilfe wäre zu schätzen.

Antwort

0

Ich am Ende unten erstellen Methode zum Entfernen der Unterschrift Bilder E-Mail-Adresse aus dem E-Mail-Körper.

public static readonly string[] _validExtensions = { "jpg", "bmp", "gif", "png", "jpeg","tiff","raw","psd" }; 

    public static bool IsImageExtension(string email) 
    { 
     bool isContainsImageExt = false;   

      MailAddress addr = new MailAddress(email); 
      string username = addr.User; 
      if (!string.IsNullOrEmpty(username) && username.Contains('.')) 
      { 
       String[] parts = username.Split(new[] { '.' }); 
       if(!string.IsNullOrEmpty(parts[0]) && !string.IsNullOrEmpty(parts[1])) 
       { 
        if(_validExtensions.Contains(parts[1].ToLower()) && (parts[0].ToLower().Contains("image"))) 
        { 
         isContainsImageExt = true; 
        } 
       } 
      } 

     return isContainsImageExt; 
    } 
Verwandte Themen