使用C#发送邮箱验证码

使用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 = @"
                               
                                   
                               
                               
                                   

验证码

您的验证码为:" + randomNumber + @"

"
; //这是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请求 返回的是验证码

步骤三成功结果

使用C#发送邮箱验证码_第1张图片

使用C#发送邮箱验证码_第2张图片

步骤四发送成功

返回值和邮箱验证码可以对应

后面会用这个验证码+前端页面做缓存完成邮箱验证码登录。

你可能感兴趣的:(后端C#,Web,api,c#,开发语言)