介绍安装MailKit
配置电子邮件的基础信息
这篇文章给大家介绍在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。网络中核心发送一个电子邮件的步骤有哪些