版权所有,禁止匿名转载;禁止商业使用。
我们知道目前 .NET Core 还不支持 SMTP 协议,当我么在使用到发送邮件功能的时候,需要借助于一些第三方组件来达到目的,今天给大家介绍两款开源的邮件发送组件,它们分别是 MailKit 和 FluentEmail , 下面我对它们分别进行介绍。
在 ASP.NET Core 中,可以使用 MailKit 来发送邮件,它支持跨平台,并且支持 IMAP, POP3, SMTP 等协议。
你可以使用下面的方式安装:
Install-Package MailKit
或者直接用Nuget将 NETCore.MailKit 引用到程序中,然后调用该程序包进行发送,具体方法在下面
private static string host = "smtp.mxhichina.com"; //smtp服务器地址 private static string emailUserName = "";//发件人邮箱 private static string emailAddressName = ""; 发件人姓名 private static string emailPassword = ""; //密码 #region 发送邮件 /// <summary> /// 同步发送邮件 /// </summary> /// <param name="email">收件人邮箱地址</param> /// <param name="subject">标题</param> /// <param name="message">内容</param> /// <param name="textpart">内容格式(默认为p:plain),不写为html</param> /// <returns></returns> public static bool SendEmail(string email, string subject, string message, string textpart = "p") { textpart = textpart == "p" ? "plain" : "html"; try { var emailMessage = new MimeMessage(); emailMessage.From.Add(new MailboxAddress(emailAddressName, emailUserName)); string[] emailArray = email.Split(','); foreach (var item in emailArray) { emailMessage.To.Add(new MailboxAddress(item)); } emailMessage.Subject = subject; emailMessage.Body = new TextPart(textpart) {Text = message}; using (var client = new SmtpClient()) { client.Connect(host, 465, true); client.Authenticate(emailUserName, emailPassword); client.Send(emailMessage); client.Disconnect(true); } return true; } catch (Exception ex) { return false; } } /// <summary> /// 异步发送邮件 /// </summary> /// <param name="email">收件人邮箱地址</param> /// <param name="subject">标题</param> /// <param name="message">内容</param> /// <param name="textpart">内容格式(默认为p:plain),不写为html</param> /// <returns></returns> public static async Task<bool> SendEmailAsync(string email, string subject, string message, string textpart = "p") { textpart = textpart == "p" ? "plain" : "html"; try { var emailMessage = new MimeMessage(); emailMessage.From.Add(new MailboxAddress(emailAddressName, emailUserName)); emailMessage.To.Add(new MailboxAddress("mail", email)); emailMessage.Subject = subject; emailMessage.Body = new TextPart(textpart) { Text = message }; using (var client = new SmtpClient()) { await client.ConnectAsync(host, 25, SecureSocketOptions.None).ConfigureAwait(false); await client.AuthenticateAsync(emailUserName, emailPassword); await client.SendAsync(emailMessage).ConfigureAwait(false); await client.DisconnectAsync(true).ConfigureAwait(false); } return true; } catch (Exception ex) { return true; } } #endregion
上一篇:MYSQL问题解决方案:Access denied for user 'root'@'localhost' (using password:YES)
下一篇:SQL Prompt v10+破解