使用C#发送邮箱验证码

2024-01-03 04:08:19

使用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请求 返回的是验证码

步骤三成功结果

在这里插入图片描述

在这里插入图片描述

步骤四发送成功

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

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

文章来源:https://blog.csdn.net/m0_67528197/article/details/135351912
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。