前言: 在之前每次看到各个网站通过邮件发送验证码的时候都会觉得很牛,多么高大上呀,结果今天打算奋斗一下去自己实现这个功能,没想到确实意外的简单,害~
一. 命名空间中引用:using System.Net.Mail;
二. 以下为示例代码:
// email: 用于接收邮件的邮箱地址
public void CreateByEmial(string email)
{
try {
var mainInfo = new Random().Next(1000, 9999);
string message = $" 欢迎您创建账号,短信验证码为:<span style='color:red;font-size:1.5rem'>{mainInfo}</span>";
// 创建邮件消息
var mailMessage = new MailMessage("your-email.com", email)
{
Subject = "标题",
Body = message,
IsBodyHtml = true // 表示Body可被编译为html格式
};
// 配置SMTP客户端
using (var smtpClient = new SmtpClient("smtp.example.com"))
{
smtpClient.Port = 587; // SMTP端口
smtpClient.UseDefaultCredentials = false; // 不使用默认凭据
smtpClient.Credentials = new System.Net.NetworkCredential("登录名", "授权码"); // SMTP服务器凭据
smtpClient.EnableSsl = true; // 启用SSL
// 发送邮件
smtpClient.Send(mailMessage);
}
} catch (Exception ex) {
return await ApiResult.Fail(ex.Message);
}
}
注意: 将示例中的部分字段替换为自己的账号信息,其中需要特别操作的是授权码,我这里就提供一下获取qq邮箱授权码的步骤
三. 获取qq邮箱SMTP授权码步骤如下:
1. 登录QQ邮箱。使用QQ邮箱账号和密码登录QQ邮箱网页端。
2. 进入设置。登录后点击右上角的“设置”按钮,进入设置页面。
3. 获取SMTP服务器信息。开启服务后,记录下SMTP服务器地址、端口和加密方式。QQ邮箱的SMTP服务器地址通常是`smtp.qq.com`,可以使用SSL加密的`465`端口或STARTTLS加密的`587`端口。
4.设置身份验证。在邮件客户端中配置SMTP服务器身份验证,选择使用与收件服务器相同的用户名和密码,或使用授权码(我这里已经获取过了,就不展示了,不过授权码是可以存在多个的,所以不用特意去记)
5. 到此,你就可以把你获取的授权码替换上述代码中的对应字段了,然后就可以发送邮件啦!!