关于电子邮件验证 - 有哪些方法

时间:2010-12-13 22:40:26

标签: asp.net .net vb.net

我只是想问一下电子邮件验证的程序,最好的方法是什么。到目前为止,我有一个类存储来自register.aspx表单的信息,然后我发送一封电子邮件给用户,但是如果我向用户发送一个guid,我应该发送给他什么?

此外,存储寄存器数据的会员类存储在会话中,这是一个好主意,因为如果用户会话超时则会员级别将不存在,并且将提示用户在会话中再次注册超时网页,这是一个很好的方法吗?

但是,如果我向用户发送guid,然后使用guid将用户数据存储到数据库,然后使用数据库中相应的用户guid检查电子邮件guid,该怎么办?

我还有一个正则表达式,用于检查电子邮件是否有效,它还不是很好,我还没有正确测试,是否有免费的电子邮件验证API?

我正在使用ASP.NET VB。

4 个答案:

答案 0 :(得分:3)

以下是我要做的事情:

1)询问用户的电子邮件

2)使用Regex验证电子邮件

3)如果有效,请创建一个时间戳(DateTime.Now),附加用户的ID以及我需要的任何其他有用信息。我们可以使用一些合适的分隔符。

4)加密数据并使用加密令牌构建URL并通过电子邮件发送给用户

5)当用户点击,解密信息时,检查时间戳(可能需要超时)并使用用户ID从数据库中获取数据。

答案 1 :(得分:2)

这是对已经接受的答案的补充 - 我不会将电子邮件验证限制为仅检查Regex语法。

我使用的free email verification API检查了许多因素,包括语法,拼写错误,SMTP和& MX-Records(用于验证电子邮件地址的实际存在),如果是免费或一次性电子邮件等等。

他们每月提供一千个免费请求 - mailboxlayer.com

答案 2 :(得分:1)

将数据保存到数据库,包括GUID。将记录的状态设置为“非活动”。发送电子邮件,其中包含GUID的链接。单击链接时,将注册记录设置为“活动”。只有“活动”记录才能登录。

您无法使用正则表达式有效验证电子邮件地址 - 请搜索此网站以获取解释原因。

答案 3 :(得分:0)

在.Net中,您应该验证这样的电子邮件地址。有关详细信息,请参阅this question

MailAddress address = new MailAddress(input)

如果电子邮件地址无效,则会引发异常。