如何在Asp.Net Core中发送电子邮件

在项目开发中常常会需要做发送 Email 的功能,在 ASP.NET Core 中你可以用 MailKit 来实现 Email 的发送,MailKit 是一个开

大家好,今天给各位分享如何在Asp.Net Core中发送电子邮件的一些知识,其中也会对进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

Install-Package NETCore.MailKit安装完成后,只需在代码中引入以下命令空间即可。

使用MailKit.Net.Smtp;使用MimeKit;

配置 Email 的基础信息

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

‘NotificationMetadata’: { ‘发件人’: ‘sender_email@gmail.com’, ‘SmtpServer’: ‘smtp.gmail.com’, ‘收件人’: ‘receiver_email@yahoo.com’, ‘端口’: 465, ‘用户名’ : ‘sender_email_user@gmail.com’, ‘Password’: ‘在此指定您的密码’ }为了实现配置中的NotificationMetadata节点映射,我定义了一个NotificationMetadata类,代码如下:

公共类NotificationMetadata { 公共字符串发件人{ 获取;放; } 公共字符串接收器{ get;放; } 公共字符串SmtpServer { 获取;放; } 公共int 端口{ 获取;放; } 公共字符串用户名{ get;放; } 公共字符串密码{ 获取;放;接下来,将NotificationMetadata 节点映射到Startup.ConfigureServices 方法中的NotificationMetadata 类。

公共无效ConfigureServices(IServiceCollection服务){ var notificationMetadata=Configuration.GetSection(’NotificationMetadata’)。获取通知元数据(); services.AddSingleton(notificationMetadata); services.AddControllers();}

生成 EmailMessage 消息类

使用以下代码创建EmailMessage 类。

公共类电子邮件消息{公共邮箱地址发件人{获取;放; } 公共邮箱地址接收器{ get;放; } 公共字符串主题{ 获取;放; } 公共字符串内容{ 获取;放; } }

生成 MimeMessage 类

如何在Asp.Net Core中发送电子邮件

以下代码显示如何从自定义EmailMessage 类构造MimeMessage。

私人MimeMessage CreateMimeMessageFromEmailMessage(EmailMessage 消息){ var mimeMessage=new MimeMessage(); mimeMessage.From.Add(消息.Sender); mimeMessage.To.Add(message.Reciever); mimeMessage.Subject=消息.Subject; mimeMessage.Body=new TextPart(MimeKit.Text.TextFormat.Text) { Text=message.Content }; return mimeMessage;}

用 MailKit 同步发送 Email

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

使用(SmtpClient smtpClient=new SmtpClient()){ smtpClient.Connect(_notificationMetadata.SmtpServer, _notificationMetadata.Port, true); smtpClient.Authenticate(_notificationMetadata.UserName, _notificationMetadata.Password); smtpClient.Send(mimeMessage); ient.Disconnect( true);} 为了方便起见,我将完整的电子邮件发送代码放在了DefaultController.Get 方法下。

公共字符串Get(){ EmailMessage 消息=new EmailMessage(); message.Sender=new MailboxAddress(‘Self’, _notificationMetadata.Sender); message.Reciever=new MailboxAddress(‘Self’, _notificationMetadata.Reciever); message.Subject=’欢迎’; message.Content=’你好世界!’; var mimeMessage=CreateEmailMessage(消息);使用(SmtpClient smtpClient=new SmtpClient()) { smtpClient.Connect(_notificationMetadata.SmtpServer, _notificationMetadata.Port, true); smtpClient。验证(_notificationMetadata.用户名,_notificationMetadata.密码); smtpClient.Send(mimeMessage); smtpClient.Disconnect(真); } return ‘电子邮件发送成功’;}

用 MailKit 异步发送 Email

上面我们使用同步方法发送电子邮件,本节将介绍如何异步发送电子邮件。

使用(SmtpClient smtpClient=new SmtpClient()) { 等待smtpClient.ConnectAsync(_notificationMetadata.SmtpServer, _notificationMetadata.Port, true);等待smtpClient.AuthenticateAsync(_notificationMetadata.UserName, _notificationMetadata.Password);等待smtpClient.SendAsync (mimeMessage);等待smtpClient.DisconnectAsync(true); }最后值得注意的是,除了简单的字符串之外,MailKit 还支持模板,甚至可以带附件发送。我将在后续文章中与您讨论更多MailKit 功能。

用户评论

如何在Asp.Net Core中发送电子邮件
命硬

这篇文章写的真好!终于可以自己了在 ASP.NET Core 应用中添加邮件功能啦,之前一直依赖第三方库很不方便。学习了一下文章说的步骤,真的非常简单明了!

    有20位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
如梦初醒

发邮件这事儿其实挺常用的场景下,尤其是在网站上验证用户,或是发送通知之类的需求。希望能看到更多关于 ASP.NET Core 发送邮件的文章,比如如何实现复杂邮件格式啊,或者如何处理不安全环境下的邮件发送等等。

    有17位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
在哪跌倒こ就在哪躺下

看标题就知道这篇文章要讲的是ASP.NET Core发邮件吧,我对前端开发比较感兴趣,不知道这个和我平时做的有什么关系?

    有6位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
该用户已上天

说的重点太简单了,我看过其他的教程都说需要配置 smtpServer 和邮件账号之类的,这篇好像就只说了如何用内置功能实现,实际操作难度可能更大。希望作者能提供更详细的实战案例,并解释一下不同种类的smtp服务的使用方法。

    有9位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
陌上花

终于能够摆脱那些古老的 Windows Application 了!ASP.NET Core 生态系统简直太棒了,使用起来优雅高效。

    有7位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
别留遗憾

ASP.NET Core 发邮件感觉比其他框架复杂多了,配置也更麻烦一点,希望有更简单易用的解决方案,比如像 MailKit 那种更轻量级的库就比较好上手。

    有15位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
愁杀

我觉得这篇文章还是挺不错的,能快速让我了解 ASP.NET Core 发送邮件的基本流程。当然,更多的实战案例和对常见问题的应对建议会更加完善。

    有16位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
绝版女子

我原来一直用第三方库来实现邮件发送,现在看到这个教程感觉自己可以在 Asp.Net Core 中直接做,是不是比用第三方图书馆更好更快?

    有10位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
七夏i

刚开始尝试学习 ASP.NET Core,感觉这个框架的文档和教程都很好用。希望以後能看到更多关于 ASP. NET CORE 的文章和教程,深入了解它的强大功能 。

    有12位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
々爱被冰凝固ゝ

发邮件这一块之前一直没好好接触过,所以觉得这篇文章对我很是有帮助,现在知道如何在 Asp.Net Core 中发送邮件,是不是可以多尝试一些新的开发 idea 了?

    有10位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
情如薄纱

我更偏向于使用第三方库来处理邮件发送,因为它们通常封装了大部分复杂操作,使用起来更加方便快捷。

    有19位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
封心锁爱

看了这篇教程后,感觉 ASP.NET Core 发送邮件的功能其实很强大,可以满足常见的邮件发送需求。不过对于更复杂的邮件场景,可能还需要借助其他工具或库来实现。

    有10位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
烟花巷陌

这篇文章的讲解很有条理,将关键步骤清晰地罗列出来,非常易于理解和操作。作为一名 ASP.NET Core 开发者,掌握邮件发送功能绝对是必不可少的技能!

    有8位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
金橙橙。-

希望以后能看到更多关于ASP.NET Core的教程,例如如何使用不同的电子邮件服务或实现邮件附件等等。

    有11位网友表示赞同!

如何在Asp.Net Core中发送电子邮件
微信名字

如果你是初学者,这篇教程对于学习 ASP.NET CORE 发送邮件是一个很好的起点。

    有11位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/97374.html

Like (0)
小su的头像小su
Previous 2024年8月29日 下午7:07
Next 2024年8月29日 下午7:09

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注