Heim >Backend-Entwicklung >C#.Net-Tutorial >ASP.NET Core sendet E-Mails
Wir wissen, dass .NET Core derzeit das SMTP-Protokoll nicht unterstützt. Wenn wir die Funktion zum Senden von E-Mails verwenden, müssen wir einige Komponenten von Drittanbietern verwenden, um den Zweck zu erreichen Ich stelle Ihnen zwei vor. Es gibt zwei Open-Source-Komponenten für den E-Mail-Versand: MailKit und FluentEmail unten. MailKit
Core können Sie MailKit zum Senden von E-Mails verwenden. Es unterstützt plattformübergreifend und unterstützt IMAP, POP3 , SMTP und andere Protokolle. Sie können die folgende Methode zur
InstallationHier ist ein einfaches Beispiel für das Senden einer E-Mail:Install-Package MailKitWenn Wenn der zu sendende Textinhalt HTML ist, können Sie Folgendes verwenden:
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); }Fluent Email
var bodyBuilder = new BodyBuilder(); bodyBuilder.HtmlBody = @"<b>This is bold and this is <i>italic</i></b>"; message.Body = bodyBuilder.ToMessageBody();
wird zum Senden von E-Mails verwendet und kann einige E-Mail-Versandprogramme von Drittanbietern wie Mailgun usw. integrieren. Dieses Paket unterstützt jedoch nur SMTP unter .NET 4.6. Sie können es mit dem folgenden Befehl installieren:
Sie können die einfachste Methode zum Versenden von E-Mails verwenden, die so einfach ist:Install-Package FluentEmail.RazorAlternativ können Sie verwenden die zu sendende Razor-Vorlage:
//注意: .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" });teilt FulentEmail mit, welcher Renderer verwendet werden soll (Sie können auch Ihren eigenen implementieren) und stellt dann eine Vorlage mit dem Inhalt bereit : Razor-Syntaxvorlage
Zeichenfolge Email.DefaultRenderer
und dann zum Rendern verwenden. UsingTemplate
cshtml-Vorlage auf der Festplatte
//注意: .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 ist ein ausländisches E-Mail-Dienstleistungsunternehmen. Der E-Mail-Dienst des berühmten GitHubs wird beispielsweise jeden Monat dort gehostet Es kann 10.000 E-Mails versenden, was für viele kleine und mittlere Websites ausreicht. Wenn Sie Mailgun zum Versenden von E-Mails verwenden, müssen Sie zunächst ein Konto registrieren und können dann die von Mailgun bereitgestellte Rest API verwenden, um gesendete oder empfangene E-Mails zu verwalten. Um Mailgun integriert mit FluentEmail zu verwenden, müssen Sie nur die folgenden Pakete hinzufügen:
Nach der Registrierung von Mailgun werden Ihnen ein API-Schlüssel
und ein Domänenname der zweiten Ebene zugewiesen. Im Programm benötigen Sie die folgende Konfiguration:Install-Package FluentEmail.Mailgun
Zusammenfassung
// 同时支持 .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();
Das obige ist der detaillierte Inhalt vonASP.NET Core sendet E-Mails. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!