我從Exchange 2003服務器,並從這些電子郵件拉動許多電子郵件中收到一封電子郵件地址,試圖確定哪些是反彈中後衛(無效),所以我可以從我們的通訊錄中刪除它們。你怎麼一個字符串
什麼是搜索電子郵件正文找上了反彈背上電子郵件地址的最有效的方法?
我從Exchange 2003服務器,並從這些電子郵件拉動許多電子郵件中收到一封電子郵件地址,試圖確定哪些是反彈中後衛(無效),所以我可以從我們的通訊錄中刪除它們。你怎麼一個字符串
什麼是搜索電子郵件正文找上了反彈背上電子郵件地址的最有效的方法?
我拉了幾個問題的答案在這裏弄成這個樣子。它實際上從字符串返回每個電子郵件地址(有時郵件主機和目標地址有多個)。然後,我可以將每個電子郵件地址與我們發送的出站地址進行匹配,以進行驗證。我使用@plinth的文章更好地理解了正則表達式,並修改了@Chris Bint的代碼
但是,我仍然想知道這是否是最快的方式來監控10,000多封電子郵件?有沒有更有效的方法(仍然使用c#)?實時代碼不會在循環內重新創建Regex對象。
public static MatchCollection CheckEmail(string email)
{
Regex regex = new Regex(@"\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b", RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(email);
return matches;
}
只需使用正則表達式。
\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b
反對,沒有評論?來吧,夥計們...... – therealmitchconnors
這是我們在很多電子郵件驗證應用中使用的正則表達式;
public static bool CheckEmail(string email)
{
//validate Email
Regex regex = new Regex(@"^([a-zA-Z0-9_\-\.\']+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$", RegexOptions.IgnoreCase);
Match match = regex.Match(email);
return match.Success;
}
正確識別一個退回的電子郵件,而不是一個自動回覆或真正的消息,實際過程是一個有點複雜,但是這將至少給你的電子郵件地址。
在何種意義上有效的?在速度方面?準確性? –
速度超過準確度。所有客戶都是美國(有限字母表)。我看了這裏http://stackoverflow.com/questions/1028553/how-to-get-email-address-from-a-long-string,但這是一個PHP的答案,我不知道分裂一個空白處的C#字符串(可能很慢)。是正則表達式的路要走嗎? – Paul
可能是一個正則表達式。你有一些示例文本? –