我从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
可能是一个正则表达式。你有一些示例文本? –