參考文檔:https://blog.csdn.net/sD7O95O/article/details/124007107
安裝nuget包
Install-Package NETCore.MailKit -Version 2.0.3

配置
配置 appsetting.json
我使用的是qq郵箱
"EmailOptions": { "SenderName": "系統郵件", //發送者名稱,可在代碼中重新替換 "FromAddress": "@qq.com", //發件者郵箱 "ToAddress": "", //接收人郵箱 "Host": "smtp.qq.com", //主機 "Port": 465, //端口 阿里云默認25端口不開放,需要使用SSL的465端口 "UserName": "@qq.com", //發件郵箱賬號 "Password": "" //發件郵箱密碼 },
添加 EmailOptions
public class EmailOptions { public string FromAddress { get; set; } public string ToAddress { get; set; } public string Host { get; set; } public string UserName { get; set; } public string Password { get; set; } }
配置 Startup
#region 注冊郵件服務 services.Configure<EmailOptions>(Configuration.GetSection("EmailOptions")); services.AddMailKit(optionBuilder => { optionBuilder.UseMailKit(new MailKitOptions() { Server = Configuration.GetValue<string>("EmailOptions:Host"), Port = Configuration.GetValue<int>("EmailOptions:Port"), SenderName = Configuration.GetValue<string>("EmailOptions:SenderName"), SenderEmail = Configuration.GetValue<string>("EmailOptions:FromAddress"), // can be optional with no authentication Account = Configuration.GetValue<string>("EmailOptions:UserName"), Password = Configuration.GetValue<string>("EmailOptions:Password"), // enable ssl or tls Security = true }); }); #endregion 注冊郵件服務
發送郵件
/// <summary> /// 會員注冊郵箱驗證碼 /// </summary> /// <param name="emial"></param> /// <returns></returns> [AllowAnonymous] [HttpGet, Route("API/ValidateCodeEmail")] public async Task<object> ValidateCodeEmail(string email) { try { string code = ""; VierificationCodeServices _vierificationCodeServices = new VierificationCodeServices(); System.IO.MemoryStream ms = _vierificationCodeServices.Create(out code); new CacheHelper().AddCaChe("webRegisterValidateCode", code); if (string.IsNullOrEmpty(email)) { result.success = false; result.msg = "請輸入正確的郵箱"; return result; } Regex emailRegex = new Regex(@"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"); if (!emailRegex.IsMatch(email)) { result.success = false; result.msg = "請輸入正確的郵箱"; return result; } string subj = "綁定郵箱帳號驗證碼"; string bodys = $"您好,本次操作校驗碼為{code}。您正在使用綁定郵箱帳號,如非本人操作,請忽略。"; var sendInfo = new SenderInfo { SenderEmail = emailoptions.FromAddress, SenderName = "郵箱帳號驗證碼", }; emailoptions.ToAddress = email; await _EmailService.SendAsync(emailoptions.ToAddress, subj, bodys, false); result.success = true; //發送郵件 return result; } catch (Exception ex) { result.success = false; result.msg = "發送信息失敗,請檢查郵箱" + ex.Message; return result; } }
浙公網安備 33010602011771號