使用C#发送邮箱验证码
在很多应用程序中,我们需要使用邮箱来进行用户身份验证。其中一种常见的方式是通过发送验证码到用户的邮箱,然后要求用户输入该验证码进行验证。本文将介绍如何使用 C# 发送邮箱验证码。
声明
验证码登录没有用任何的工具(redis等)
步骤一:获取QQ或者网易邮箱的授权码
可以看本人上一篇获取QQ邮箱的授权码(可代发邮件验证码)的获取QQ的授权码。
public string EmailSend(string email){try{// 模拟随机验证码 生成随机六位数Random random = new Random();int randomNum = random.Next(100000, 999999);string randomNumber = randomNum.ToString();// 邮件发送设置using (var mailMessage = new MailMessage()){mailMessage.From = new MailAddress("用于发送验证码的邮箱");//接受验证码的邮箱 一般是登录时用户登录的邮箱mailMessage.To.Add(new MailAddress(email));mailMessage.Subject = "用户的验证码";mailMessage.IsBodyHtml = true;// 使用内联 CSS 样式mailMessage.Body = @"<html><head><style>h1 {color: #333;font-family: Arial, sans-serif;}p {color: #555;font-family: Arial, sans-serif;}strong {color: #f00;font-weight: bold;}</style></head><body><h1>验证码</h1><p>您的验证码为:<strong>" + randomNumber + @"</strong></p></body></html>";//这是QQ的 SMTP 设置 网易邮箱需要修改using (var client = new SmtpClient("smtp.qq.com", 587)){client.EnableSsl = true;client.Credentials = new NetworkCredential("发送验证码的邮箱和上面一样", "授权码");// 发送邮件client.Send(mailMessage);Console.WriteLine("邮件发送成功!");}}//返回验证码return randomNumber;}catch (System.Exception ex){//可做错误处理 记录错误日志//log(ex);return "邮件发送失败:" + ex.Message;}}
在上述代码中,EmailSend方法用于发送验证码到用户的邮箱,并返回生成的验证码。在主函数中,我们调用该方法来发送验证码,并要求用户输入验证码进行验证。
步骤二简单调用EmailSend
[HttpPost]public string a(string email){EmaliSend e = new EmaliSend();return e.emailsendone(email);}
这是一个简单的 ASP.NET Core Web API 的控制器方法
POST请求 返回的是验证码
步骤三成功结果
步骤四发送成功
返回值和邮箱验证码可以对应
后面会用这个验证码+前端页面做缓存完成邮箱验证码登录。