在Asp。网络中核心发送一个电子邮件的步骤有哪些

  介绍

这篇文章给大家介绍在Asp。网络中核心发送一个电子邮件的步骤有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

安装MailKit

要想使用MailKit,你可以使用Visual Studio 2019中的NuGet包管理器可视化界面进行安装,或者通过NuGet包管理器控制台命令行输入如下命令:

Install-Package  NETCore。MailKit

安装完成之后,在代码中引入以下命令空间即可。

using  MailKit.Net.Smtp;   using  MimeKit;

配置电子邮件的基础信息

下面的代码片段展示了在appsettings。json文件中配置电子邮件的详细信息。

“NotificationMetadata":, {   ,“Sender":“sender_email@gmail.com",,   ,“SmtpServer":,“smtp.gmail.com"   ,“Reciever":“receiver_email@yahoo.com",,   ,“Port": 465年,   ,“Username":“sender_email_user@gmail.com",,   ,“Password":“specify  your  password  here"   以前,}

为了能够实现配置中的NotificationMetadata节点映射,我定义了一个NotificationMetadata类,代码如下:

, public  class  NotificationMetadata   ,{   public 才能string  Sender {组,得到,,,}   public 才能string  Reciever {组,得到,,,}   public 才能string  SmtpServer {组,得到,,,}   public 才能int  Port {组,得到,,,}   public 才能string  UserName {组,得到,,,}   public 才能string  Password {组,得到,,,}   以前,}

接下来在启动。ConfigureServices方法中将NotificationMetadata节点映射到NotificationMetadata类。

public  void  ConfigureServices (IServiceCollection 服务)   {   ,var  notificationMetadata =Configuration.GetSection才能(“NotificationMetadata")。   Get<才能;NotificationMetadata> ();   services.AddSingleton才能(notificationMetadata);   services.AddControllers才能();   }

生成EmailMessage消息类

使用如下代码创建一个EmailMessage类。

private  MimeMessage  CreateMimeMessageFromEmailMessage (EmailMessage 消息)   {   var 才能;mimeMessage =, new  MimeMessage ();   mimeMessage.From.Add才能(message.Sender);   mimeMessage.To.Add才能(message.Reciever);   时间=mimeMessage.Subject 才能;message.Subject;   时间=mimeMessage.Body 才能;new  TextPart (MimeKit.Text.TextFormat.Text)   {才能,Text =, message.Content };   return 才能;mimeMessage;   }

生成MimeMessage类

下面的代码展示了如何从自定义的EmailMessage类中构造出一个MimeMessage。

private  MimeMessage  CreateMimeMessageFromEmailMessage (EmailMessage 消息)   {   var 才能;mimeMessage =, new  MimeMessage ();   mimeMessage.From.Add才能(message.Sender);   mimeMessage.To.Add才能(message.Reciever);   时间=mimeMessage.Subject 才能;message.Subject;   时间=mimeMessage.Body 才能;new  TextPart (MimeKit.Text.TextFormat.Text)   {才能,Text =, message.Content };   return 才能;mimeMessage;   }

用MailKit同步发送电子邮件

为了最终能够实现发邮件送,需要使用MailKit.Net。Smtp命名空间下的SmtpClient类、下面的代码展示了具体实现步骤。

using  (SmtpClient  SmtpClient =, new  SmtpClient ())   {   ,smtpClient.Connect (_notificationMetadata.SmtpServer   ,_notificationMetadata.Port,真实);   ,smtpClient.Authenticate (_notificationMetadata.UserName   ,_notificationMetadata.Password);   ,smtpClient.Send (mimeMessage);   ,smtpClient.Disconnect(真正的);   }

为了方便起见,我就把完整的发送电子邮件代码放在DefaultController。让方法下。

public  string 得到()   {   ,EmailMessage  message =, new  EmailMessage ();=,,message.Sender  new  MailboxAddress (“Self",, _notificationMetadata.Sender);=,,message.Reciever  new  MailboxAddress (“Self",, _notificationMetadata.Reciever);=,message.Subject “Welcome";=,message.Content “Hello 世界!“;   ,var  mimeMessage =, CreateEmailMessage(消息);   ,using  (SmtpClient  SmtpClient =, new  SmtpClient ())   ,{   smtpClient.Connect才能(_notificationMetadata.SmtpServer   _notificationMetadata.Port才能,真正的);   smtpClient.Authenticate才能(_notificationMetadata.UserName   _notificationMetadata.Password才能);   smtpClient.Send才能(mimeMessage);   smtpClient.Disconnect才能(真正的);   ,}   ,return “Email  sent  successfully";   null   null   null   null   null   null   null   null   null

在Asp。网络中核心发送一个电子邮件的步骤有哪些