현재 .NET Core는 SMTP 프로토콜을 지원하지 않는다는 것을 알고 있습니다. 이메일 전송 기능을 사용할 때 목표를 달성하려면 일부 타사 구성 요소를 사용해야 합니다. 오늘은 두 가지 오픈 소스를 소개하겠습니다. 구성 요소는 각각 MailKit 및 FluentEmail입니다.
MailKitASP.NET Core에서는 MailKit을 사용하여 이메일을 보낼 수 있으며 크로스 플랫폼을 지원하고 IMAP, POP3, SMTP 및 기타 프로토콜을 지원합니다.
다음 방법을 사용할 수 있습니다install:
Install-Package MailKit
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 OAuth2 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); }
var bodyBuilder = new BodyBuilder(); bodyBuilder.HtmlBody = @"<b>This is bold and this is <i>italic</i></b>"; message.Body = bodyBuilder.ToMessageBody();
Razor 템플릿을 사용하여 이메일을 보낼 수 있고 Mailgun 등과 같은 일부 타사 이메일 전송 프로그램을 통합할 수 있습니다. .NET 4.6에서만 사용할 수 있습니다. SMTP만 지원합니다. 다음 명령을 사용하여 설치할 수 있습니다.
Install-Package FluentEmail.Razor
//注意: .NET 4.6 才支持Email.DefaultSender = new SmtpSender();var email = Email .From("foo@email.com") .To("bar@email.com", "bob") .Subject("星期天去哪里玩?") .Body("我想去故宫玩,如何?"); await email.SendAsync();
//注意: .NET 4.6 才支持Email.DefaultSender = new SmtpSender();// Using Razor templating packageEmail.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에게 사용할 렌더러를 알려주고(직접 구현할 수도 있음) 콘텐츠가 Razor 구문 템플릿 String 을 사용한 다음 UsingTemplate
을 사용하여 렌더링합니다. Email.DefaultRenderer
是告诉FulentEmail 使用哪个渲染器(你也可以自己实现一个自己的),然后提供了一个 template 模板,内容为 Razor 语法的模板字符串,然后使用 UsingTemplate
//注意: .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에 대해 잘 알지 못할 수도 있습니다. Mailgun은 외국 이메일 서비스 회사입니다. 예를 들어 유명한 Git허브 이메일 서비스가 여기에서 호스팅됩니다. . 무료 Maingun 계정은 한 달에 10,000개의 이메일을 보낼 수 있으며 이는 많은 중소 규모 웹사이트에 충분합니다.
Mailgun을 사용하여 이메일을 보낼 때는 먼저 계정을 등록해야 하며, 그런 다음 Mailgun에서 제공하는 RestAPI를 사용하여 주고받은 이메일을 관리할 수 있습니다. FluentEmail 통합 Mailgun을 사용하려면 다음 패키지만 추가하면 됩니다.
Install-Package FluentEmail.Mailgun
Key와 2차 도메인 이름이 할당됩니다. 프로그램에서 다음 구성이 필요합니다.
// 同时支持 .NET Core 和 .NET Frameworkvar sender = new MailgunSender( "sandboxcf5f41bbf2f84f15a386c60e253b5fe8.mailgun.org", // Mailgun 二级域名 "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();
위 내용은 ASP.NET Core가 이메일을 보냅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!