成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在ASP.NETCore項(xiàng)目中實(shí)現(xiàn)一個(gè)郵件發(fā)送功能-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么在ASP.NET Core項(xiàng)目中實(shí)現(xiàn)一個(gè)郵件發(fā)送功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站專注于古丈企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站定制開發(fā)。古丈網(wǎng)站建設(shè)公司,為古丈等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

MailKit


在 ASP.NET Core 中,可以使用 MailKit 來發(fā)送郵件,它支持跨平臺(tái),并且支持 IMAP, POP3, SMTP 等協(xié)議。

你可以使用下面的方式安裝:

Install-Package MailKit

下面是一個(gè)簡(jiǎn)單的發(fā)送郵件的例子:


var message = new MimeMessage ();
message.From.Add (new MailboxAddress ("Joey Tribbiani", "joey@friends.com"));
message.To.Add (new MailboxAddress ("Mrs. Chanandler Bong", "chandler@friends.com"));

message.Subject = "星期天去哪里玩?";

message.Body = new TextPart ("plain") { Text = "我想去故宮玩,如何" };

using (var client = new SmtpClient ()) {
  // For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
  client.ServerCertificateValidationCallback = (s,c,h,e) => true;

  client.Connect ("smtp.friends.com", 587, false);

  // Note: since we don't have an OAuth3 token, disable
  // the XOAUTH2 authentication mechanism.
  client.AuthenticationMechanisms.Remove ("XOAUTH2");

  // Note: only needed if the SMTP server requires authentication
  client.Authenticate ("joey", "password");

  client.Send (message);
  client.Disconnect (true);
}

如果你要發(fā)送的 Body 內(nèi)容是 HTML 的話,你可以使用下面這種:

var bodyBuilder = new BodyBuilder();
bodyBuilder.HtmlBody = @"<b>This is bold and this is <i>italic</i></b>";
message.Body = bodyBuilder.ToMessageBody();

Fluent Email

Fluent Email 這個(gè)也是一個(gè)開源項(xiàng)目,利用它,你可以使用 Razor 模板來發(fā)送郵件,并且可以集成一些第三方的郵件發(fā)送程序比如 Mailgun等,但是此包只在 .NET 4.6 下才支持 SMTP 。你可以使用如下命令來安裝它:

Install-Package FluentEmail.Razor

你可以使用最基本的方式來發(fā)送郵件,很簡(jiǎn)單如下:


//注意: .NET 4.6 才支持
Email.DefaultSender = new SmtpSender();

var email = Email
  .From("foo@email.com")
  .To("bar@email.com", "bob")
  .Subject("星期天去哪里玩?")
  .Body("我想去故宮玩,如何?");

await email.SendAsync();

或者,你可以使用 Razor 模板來發(fā)送:

//注意: .NET 4.6 才支持
Email.DefaultSender = new SmtpSender();

// Using Razor templating package
Email.DefaultRenderer = new RazorRenderer();

var template = "Dear @Model.Name, You are totally @Model.Compliment.";

var email = Email
  .From("bob@hotmail.com")
  .To("somedude@gmail.com")
  .Subject("woo nuget")
  .UsingTemplate(template, new { Name = "Luke", Compliment = "Awesome" });

Email.DefaultRenderer 是告訴FulentEmail 使用哪個(gè)渲染器(你也可以自己實(shí)現(xiàn)一個(gè)自己的),然后提供了一個(gè) template 模板,內(nèi)容為 Razor 語法的模板字符串,然后使用 UsingTemplate 來進(jìn)行渲染呈現(xiàn)。

磁盤上的 cshtml 模板

加入你的郵件 Razor 模板文件比較大,用字符串來表示的話不太優(yōu)雅,那么你可以把模板文件放到磁盤上,然后使用如下方式來加載:


//注意: .NET 4.6 才支持
Email.DefaultSender = new SmtpSender();

Email.DefaultRenderer = new RazorRenderer();

var email = Email
  .From("foo@email.com")
  .To("bar@email.com", "bob")
  .Subject("星期天去哪里玩?")
  .UsingTemplateFromFile($"{Directory.GetCurrentDirectory}/EmailTemplage.cshtml", new {Name ="Luke"})

使用 Mailgun 發(fā)送郵件

可能有一些人對(duì) Mailgun 還不太清楚,Mailgun 是國外的一個(gè)郵件服務(wù)公司,比如著名的 Github 的郵件服務(wù)就托管在它的上面,免費(fèi)的 Maingun 賬戶每個(gè)月可以發(fā)送 10000 封郵件,對(duì)于很多中小網(wǎng)站足夠用了。

當(dāng)使用 Mailgun 來發(fā)送郵件的時(shí)候,你首先需要去注冊(cè)一個(gè)賬號(hào),然后可以利用 Mailgun 提供的 Rest API 來管理發(fā)送或者接收的郵件。使用 FluentEmail 集成的 Mailgun只需要添加如下包:

Install-Package FluentEmail.Mailgun

注冊(cè)完 Mailgun 之后會(huì)給你分配一個(gè) API Key 和一個(gè)二級(jí)域名,在程序種,你需要如下配置:


// 同時(shí)支持 .NET Core 和 .NET Framework
var sender = new MailgunSender(
  "sandboxcf5f41bbf2f84f15a386c60e253b5fe8.mailgun.org", // Mailgun 二級(jí)域名
  "key-8d32c046d7f14ada8d5ba8253e3e30df" // Mailgun API Key
);

Email.DefaultSender = sender;

var email = Email
  .From("foo@email.com")
  .To("bar@email.com", "bob")
  .Subject("星期天去哪里玩?")
  .Body("我想去故宮玩,如何?");

await email.SendAsync();

總結(jié)

通過上述示例我們可以看出 MailKit 和 FluentEmail 各有優(yōu)缺點(diǎn)。MailKit 的優(yōu)點(diǎn)是支持的協(xié)議比較多,而且是跨平臺(tái)的,但是缺點(diǎn)是沒有提供對(duì) Razor的支持,并且如果使用 Mailgun 的話需要自己進(jìn)行集成。 那么 FlentEmail 的優(yōu)點(diǎn)是提供了 Razor 模板的支持并且封裝了 Mailgun, 缺點(diǎn)是 SMTP 協(xié)議還沒有提供對(duì) .NET Core 的支持。

綜上所述,如果你使用 Mailgun 來發(fā)送郵件的話,那么 FluentEmail 是你應(yīng)該選擇的,如果你想使用 SMTP 協(xié)議鏈接到自己的郵件服務(wù)器來發(fā)送郵件的話,那么你應(yīng)該用 MailKit。

上述就是小編為大家分享的怎么在ASP.NET Core項(xiàng)目中實(shí)現(xiàn)一個(gè)郵件發(fā)送功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:怎么在ASP.NETCore項(xiàng)目中實(shí)現(xiàn)一個(gè)郵件發(fā)送功能-創(chuàng)新互聯(lián)
路徑分享:http://jinyejixie.com/article44/jsphe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制網(wǎng)站全網(wǎng)營(yíng)銷推廣、網(wǎng)站內(nèi)鏈、網(wǎng)站策劃、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
长寿区| 郓城县| 桃园县| 兴宁市| 景东| 沙湾县| 彰武县| 淄博市| 左云县| 苍溪县| 巧家县| 拉孜县| 鹰潭市| 称多县| 赤峰市| 山丹县| 巴林左旗| 彰化市| 包头市| 梁山县| 达日县| 临海市| 东阿县| 麻江县| 贡嘎县| 正蓝旗| 翁牛特旗| 郴州市| 乐山市| 桃江县| 周宁县| 新龙县| 荆门市| 枝江市| 无锡市| 额尔古纳市| 南康市| 河北区| 册亨县| 绥芬河市| 云霄县|