我想在用户注册时发送确认电子邮件,但首先我要确保此电子邮件真实有效,有没有办法检查这个?
我的意思是说我想注册这封电子邮件:blah@blah.com,在服务器端我想发送电子邮件地址给API或任何返回该电子邮件正在工作的东西,然后我发送确认之一。
是否可以这样做?
感谢
答案 0 :(得分:3)
这正是你想要的: End-to-end Email Address Verification for Applications
本教程由三部分组成:
1)验证 一些代码:
public static bool isEmail(string inputEmail)
{
inputEmail = NulltoString(inputEmail);
string strRegex = @"^([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})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))
return (true);
else
return (false);
}
2)通过SMTP网络连接进行验证
string[] host = (address.Split('@'));
string hostname = host[1];
IPHostEntry IPhst = Dns.Resolve(hostname);
IPEndPoint endPt = new IPEndPoint(IPhst.AddressList[0], 25);
Socket s= new Socket(endPt.AddressFamily,
SocketType.Stream,ProtocolType.Tcp);
s.Connect(endPt);
3)通过SMTP握手验证
...更多信息here
答案 1 :(得分:1)
首先,您可以使用正则表达式进行电子邮件验证。像这样。
public const string MatchEmailPattern =
@"^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
+ @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?
[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
+ @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?
[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
+ @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$";
/// <summary>
/// Checks whether the given Email-Parameter is a valid E-Mail address.
/// </summary>
/// <param name="email">Parameter-string that contains an E-Mail address.</param>
/// <returns>True, when Parameter-string is not null and
/// contains a valid E-Mail address;
/// otherwise false.</returns>
public static bool IsEmail(string email)
{
if (email != null) return Regex.IsMatch(email, MatchEmailPattern);
else return false;
}
其次,您可以使用第三方API来验证电子邮件(我认为您正在寻找此信息)。 API的一些有用链接 -