喜迪情感
您的当前位置:首页ASP.NET Core 1.0实现邮件发送功能

ASP.NET Core 1.0实现邮件发送功能

来源:喜迪情感


准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 

好东西一定要试一下,何况是开源,下面是代码可实现SMTP邮件发送: 

using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
using System.Threading.Tasks;

namespace ConsoleApp1
{
 public class MailHelper
 {
 public static void Send(string email, string subject, string message)
 {
 var emailMessage = new MimeMessage();
 emailMessage.From.Add(new MailboxAddress("tianwei blogs", "mail@hantianwei.cn"));
 emailMessage.To.Add(new MailboxAddress("mail", email));
 emailMessage.Subject = subject;
 emailMessage.Body = new TextPart("plain") { Text = message };

 using (var client = new SmtpClient())
 {
 client.Connect("smtp.hantianwei.cn", 465, true);
 client.Authenticate("mail@hantianwei.cn", "******");

 client.Send(emailMessage);
 client.Disconnect(true);

 }
 }

 public static async Task SendEmailAsync(string email, string subject, string message)
 {
 var emailMessage = new MimeMessage();

 emailMessage.From.Add(new MailboxAddress("tianwei blogs", "mail@hantianwei.cn"));
 emailMessage.To.Add(new MailboxAddress("mail", email));
 emailMessage.Subject = subject;
 emailMessage.Body = new TextPart("plain") { Text = message };

 using (var client = new SmtpClient())
 {
 await client.ConnectAsync("smtp.hantianwei.cn", 25, SecureSocketOptions.None).ConfigureAwait(false);
 await client.AuthenticateAsync("mail@hantianwei.cn", "******");
 await client.SendAsync(emailMessage).ConfigureAwait(false);
 await client.DisconnectAsync(true).ConfigureAwait(false);
 
 }
 }

 }
} 

以上代码同步异步都没有问题
 注:一般邮箱如腾讯企业邮、163等都可以发送成功,但阿里云邮件推送失败,如果有高手可实现阿里云推送邮件请告诉我一下,非常感谢!

显示全文