最近MSP内正在大开脑洞,制作基佬紫狗牌(⁄ ⁄•⁄ω⁄•⁄ ⁄),还打算搭建一个MSP的征婚网站,在制作时就在思考使用ASP.NET实现发送验证码至邮箱以验证邮箱可用性。
接下来是我的思路:
首先使用RegularExpressionValidator控件验证邮箱格式是否正确
然后使用Random类获取伪随机数
通过调用MailMessage和SmtpClient两个类向用户邮箱发送随机数
用户输入随机数验证邮箱可用性
打开清真的Visual Studio 2017【在此感谢微软爸爸提供的各种密钥!】没有专业/企业版的同学可以使用社区版VS!_:(´ཀ`」 ∠):_
输入邮箱以接收邮件的前台代码:
输入邮箱:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RegularExpressionValidator" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="发送验证码" OnClick="Button1_Click" />
输入邮箱以接收邮件的后台代码:
string chkCode = string.Empty;
//验证码的字符集,去掉了一些容易混淆的字符
char[] character = { '2', '3', '4', '5', '6', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' };
Random rnd = new Random();
//生成验证码字符串
for (int i = 0; i < 4; i++)
{
chkCode += character[rnd.Next(character.Length)];
}
MailMessage mymail = new MailMessage(); //声明一个Mail对象
mymail.From = new MailAddress("xxxxx@163.com"); //发件人地址
mymail.To.Add(new MailAddress(TextBox1.Text)); //收件人地址
mymail.Subject = "XXX网站验证码"; //邮件主题
mymail.Body = chkCode.ToString(); //发送邮件的内容
//创建一个邮件服务器类
SmtpClient myclient = new SmtpClient();
myclient.Host = "smtp.163.com";
//SMTP服务端口
myclient.Port = int.Parse("25");
//验证登录
myclient.Credentials = new NetworkCredential("xxxxx@163.com", "xxxxx");//这里填入发件人的用户名和密码
myclient.Send(mymail);
Session["chkCode"] = chkCode; //将验证码传值到Default2
Response.Redirect("Default2.aspx"); //跳转至Default2页面
用户输入验证码以检查邮箱可用性前台代码:
输入验证码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="RegularExpressionValidator" ValidationExpression="^[0-9]{4}$"></asp:RegularExpressionValidator>
<br />
<asp:Button ID="Button2" runat="server" Text="检查邮箱" OnClick="Button2_Click" />
用户输入验证码以检查邮箱可用性后台代码:
String chkCode; //定义chkCode变量
chkCode = Session["chkCode"].ToString(); //接收Default传值
if (TextBox2.Text == chkCode) //判断验证码是否正确
{
Response.Write("<script languane='javascript'>alert('验证码正确!')</script>");
}
else
{
Response.Write("<script languane='javascript'>alert('验证码错误!')</script>");
}
以上就是我解决ASP.NET注册验证邮箱的思路以及代码!