Email地址有效性验证

Email地址有效性的检验是一个经常遇到的问题啦!一般的检验方法是对Email地址字符串进行简单的检验,如是否含有@ .等有效字符等。这种方法只能保证该地址从格式上看似有效,并不能保证地址可达。最近进行大量的地址校验,写了一个小程序,可以保证Email地址真正可达。

public bool checkEmail(string mailAddress)
{
TcpClient tcpc=new TcpClient();
try{
string server=mailAddress.Split('@')[1];
tcpc.Connect(server,25);
NetworkStream s=tcpc.GetStream();
StreamReader sr=new StreamReader(s,Encoding.Default);
string strR="";
strR=sr.ReadLine();
if(!strR.StartsWith("220")) return false;
StreamWriter sw=new StreamWriter(s,Encoding.Default);
sw.WriteLine("HELO");
sw.Flush();
strR=sr.ReadLine();
if(!strR.StartsWith("250")) return false;

sw.WriteLine("MAIL FROM;brookes@tsinghua.org.cn");
sw.Flush();
strR=sr.ReadLine();
if(!strR.StartsWith("250")) return false;

sw.WriteLine("RCPT TO:"+mailAddress);
sw.Flush();
strR=sr.ReadLine();
if(!strR.StartsWith("250")) return false;

sw.WriteLine("QUIT");
sw.Flush();
strR=sr.ReadLine();
return true;

}catch(Exception ee)
{
return false;
}
}

这个程序是根据SMTP的基本过程实现的。与一个mail服务器连接发邮件的基本过程可能是这样的:

telnet mail.brookes.com 25
>>220 brookes.com<IMail 8.02>
HELO
>>250 mail.brookes.com
MAIL FROM:brookes@tsinghua.org.cn
>>250 Ok
RCPT TO:me@brookes.com
>>250 ok its for me@brookes.com
DATA
>>ok.send it ;end with <CRLF>.<CRLF>
soem data.
>>250 message queued
QUIT
>>221 Goodbye.

时间: 2024-10-24 06:09:47

Email地址有效性验证的相关文章

Asp.net 2.0 实现自定义Email格式有效性验证(示例代码下载)

asp.net|示例|下载 (一). 概述及功能          用了两种方法实现验证Email格式,Asp.net验证控件和手动编写代码验证.并用到简单工厂和适配品设计模式, 代码重构技术.    实现自定义Email邮件地址有效性验证, 完成如下功能:Question 11. Email 格式为 user@server.domain. 例如: King.Cheng@hotmail.com or King.Cheng@hotmail.com.cn or King.Cheng@hotmail.

通过探测邮件服务器进行Email地址有效性检验

Email地址有效性的检验是一个经常遇到的问题啦!一般的检验方法是对Email地址字符串进行简单的格式检验,如是否含有@.等有效字符等.这种方法只能保证该地址从格式上看似有效,并不能保证地址可达.最近进行大量的地址校验,写了一个小程序,可以检测Email地址是否真正可达. Email地址包括两个部分:用户名和邮件服务器.因此,检验邮件地址可以分为两步进行:首先检验邮件服务器,然后检验用户名.如 通过查询DNS服务器,获取域名的MX(MailExchanger)记录,可以确定某一域名对应的邮件服务

url地址有效性验证

问题描述 if(string.Compare(url.Substring(0,4),"http",true)!=0)url="http://"+url;varmyRequest=(HttpWebRequest)WebRequest.Create(url);myRequest.Method="HEAD";myRequest.Timeout=int.MaxValue;varres=(HttpWebResponse)myRequest.GetRespo

asp邮箱email地址正则表达式验证函数

函数名:chk_Email() '返回值:布尔值(True为通过,False为未通过) '参数:email(需要判断的email,类型:字符串)   Type_1(是否需要判断@之后的domain,类型:布尔值) 'Type_2(是否只能是特定域的E-Mail注册,类型:布尔值) Type_3(一个E-Mail是否只能注册一次,类型:布尔值) Const C_maildomain=".com,.com.cn,.net,.net.cn,.org,.org.cn,.gov,.gov.cn,.edu,

利用js正则表达式验证手机号,email地址,邮政编码

 利用js正则表达式验证手机号,email地址,邮政编码.需要的朋友可以过来参考下,希望对大家有所帮助 手机号码的验证(13开头和158,159开头,共11位)  代码如下: var re; var ss=document.getElementById('textbox3').value; re= /^(13[0-9]{9})|(15[89][0-9]{8})$/ if(re.test(ss))  {    document.getElementById('label3').innerText=

Javascript正则表达式验证Email地址

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="conte

用&amp;#106avascript的正则表达式来验证Email地址是否格式正确

正则  1// 检查 E-mail 是否已被注册 2    function CheckExists() 3    { 4        var e = document.getElementById("mailaddress").value; 5        if(e != "") { 6            if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(e))  7            { 8               

验证email地址是否合法完整实例

1.//index.html <html> <head> <title>email地址是否合法 index.html</title> <Script language = "JavaScript" src="mail.js"></script> <script language="JavaScript"> <!-- function mail_process

实现E-mail地址验证的vbs函数代码

函数 **************************************************'函数名:IsValidEmail'作 用:检查Email地址合法性'参 数:email ----要检查的Email地址'返回值:True ----Email地址合法' False ----Email地址不合法'**************************************************function IsValidEmail(email)dim names, na