Senden von E-Mails in Azure mit SendGridHow to Send Email Using SendGrid with Azure

ÜbersichtOverview

Dieser Leitfaden veranschaulicht die Ausführung allgemeiner Programmierungsaufgaben mit dem E-Mail-Dienst SendGrid in Azure.This guide demonstrates how to perform common programming tasks with the SendGrid email service on Azure. Die Beispiele sind in C# geschrieben und unterstützen .NET Standard 1.3.The samples are written in C# and supports .NET Standard 1.3. Folgende Szenarien werden beschrieben: Schreiben einer E-Mail, Senden einer E-Mail, Hinzufügen von Anhängen und Aktivieren von verschiedenen Einstellungen für E-Mail und Nachverfolgung.The scenarios covered include constructing email, sending email, adding attachments, and enabling various mail and tracking settings. Weitere Informationen zu SendGrid und zum Senden von E-Mails erhalten Sie im Abschnitt Nächste Schritte .For more information on SendGrid and sending email, see the Next steps section.

Was ist der SendGrid-E-Mail-Dienst?What is the SendGrid Email Service?

SendGrid ist ein cloudbasierter E-Mail-Dienst, der zuverlässige transaktionale E-Mail-Übermittlung, Skalierbarkeit und Echtzeitanalysen mit flexiblen APIs bietet, die die benutzerdefinierte Integration erleichtern.SendGrid is a cloud-based email service that provides reliable transactional email delivery, scalability, and real-time analytics along with flexible APIs that make custom integration easy. Dies sind häufige Anwendungsfälle für SendGrid:Common SendGrid use cases include:

  • Automatisches Senden von Empfangs- oder Kaufbestätigungen an KundenAutomatically sending receipts or purchase confirmations to customers.
  • Verwalten von Verteilerlisten zum Senden von monatlichen Flyern und WerbeangebotenAdministering distribution lists for sending customers monthly fliers and promotions.
  • Sammeln von Echtzeitmetriken beispielsweise zu gesperrten E-Mails oder zur KundenbindungCollecting real-time metrics for things like blocked email and customer engagement.
  • Weiterleitung von KundenanfragenForwarding customer inquiries.
  • Verarbeitung eingehender E-MailsProcessing incoming emails.

Weitere Informationen finden Sie unter https://sendgrid.com oder im GitHub-Repository in der C#-Bibliothek für SendGrid.For more information, visit https://sendgrid.com or SendGrid's C# library GitHub repo.

Erstellen eines SendGrid-KontosCreate a SendGrid Account

Kunden von Azure können monatlich 25.000 kostenlose E-Mails freischalten.Azure customers can unlock 25,000 free emails each month. Mit diesen 25.000 kostenlosen E-Mails pro Monat erhalten Sie Zugriff auf erweiterte Berichterstellung und Analysen sowie auf sämtliche APIs (Web, SMTP, Ereignis, Analyse usw.).These 25,000 free monthly emails will give you access to advanced reporting and analytics and all APIs (Web, SMTP, Event, Parse and more). Informationen zu den zusätzlichen Diensten von SendGrid finden Sie auf der Seite mit den SendGrid-Lösungen.For information about additional services provided by SendGrid, visit the SendGrid Solutions page.

So registrieren Sie ein SendGrid-KontoTo sign up for a SendGrid account

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal.

  2. Wählen Sie im Menü auf der linken Seite Ressource erstellen aus.In the menu on the left, click Create a resource.

    command-bar-new

  3. Klicken Sie auf Add-Ons und anschließend auf E-Mail-Zustellung über SendGrid.Click Add-ons and then SendGrid Email Delivery.

    sendgrid-store

  4. Füllen Sie das Registrierungsformular aus, und wählen Sie Erstellen.Complete the signup form and select Create.

    sendgrid-create

  5. Geben Sie unter Name einen Namen ein, um Ihren SendGrid-Dienst in Ihren Azure-Einstellungen zu identifizieren.Enter a Name to identify your SendGrid service in your Azure settings. Namen müssen zwischen 1 und 100 Zeichen lang sein und dürfen nur alphanumerische Zeichen, Gedankenstriche, Punkte und Unterstriche enthalten.Names must be between 1 and 100 characters in length and contain only alphanumeric characters, dashes, dots, and underscores. Der Name muss in der Liste der abonnierten Azure Store-Artikel eindeutig sein.The name must be unique in your list of subscribed Azure Store Items.

  6. Geben Sie Ihr Kennwort ein, und bestätigen Sie es.Enter and confirm your Password.

  7. Wählen Sie Ihr Abonnement aus.Choose your Subscription.

  8. Erstellen Sie eine neue Ressourcengruppe, oder verwenden Sie eine bereits vorhandene.Create a new Resource group or use an existing one.

  9. Wählen Sie im Abschnitt Tarif den SendGrid-Tarif aus, für den Sie sich registrieren möchten.In the Pricing tier section select the SendGrid plan you want to sign up for.

    sendgrid-pricing

  10. Geben Sie einen Promotioncode ein (sofern vorhanden).Enter a Promotion Code if you have one.

  11. Geben Sie Ihre Kontaktinformationen ein.Enter your Contact Information.

  12. Lesen Sie sich die rechtlichen Bedingungen durch, und akzeptieren Sie sie.Review and accept the Legal terms.

  13. Im Anschluss an die Kaufbestätigung erscheint ein Popup mit dem Hinweis, dass die Bereitstellung erfolgreich war, und Ihr Konto wird im Abschnitt Alle Ressourcen aufgeführt.After confirming your purchase you will see a Deployment Succeeded pop-up and you will see your account listed in the All resources section.

    Alle Ressourcen

    Nachdem Sie den Kauf abgeschlossen und zum Initiieren der E-Mail-Überprüfung auf die Schaltfläche Verwalten geklickt haben, erhalten Sie eine E-Mail von SendGrid, in der Sie gebeten werden, Ihr Konto zu bestätigen.After you have completed your purchase and clicked the Manage button to initiate the email verification process, you will receive an email from SendGrid asking you to verify your account. Sollten Sie diese E-Mail nicht erhalten oder Ihr Konto nicht bestätigen können, lesen Sie sich die häufig gestellten Fragen durch.If you do not receive this email, or have problems verifying your account, please see this FAQ.

    manage

    Solange das Konto noch nicht bestätigt wurde, können pro Tag nur maximal 100 E-Mails versendet werden.You can only send up to 100 emails/day until you have verified your account.

    Wenn Sie Ihren Abonnementplan ändern oder die SendGrid-Kontakteinstellungen anzeigen möchten, klicken Sie auf den Namen des SendGrid-Diensts, um das SendGrid-Marketplace-Dashboard zu öffnen.To modify your subscription plan or see the SendGrid contact settings, click the name of your SendGrid service to open the SendGrid Marketplace dashboard.

    settings

    Wenn Sie eine E-Mail mit SendGrid senden möchten, müssen Sie Ihren API-Schlüssel angeben.To send an email using SendGrid, you must supply your API Key.

So finden Sie Ihren API-Schlüssel für SendGridTo find your SendGrid API Key

  1. Klicken Sie auf Manage.Click Manage.

    manage

  2. Wählen Sie auf Ihrem SendGrid-Dashboard die Option Settings (Einstellungen) und anschließend im Menü auf der linken Seite die Option API Keys (API-Schlüssel) aus.In your SendGrid dashboard, select Settings and then API Keys in the menu on the left.

    api-keys

  3. Klicken Sie auf API-Schlüssel erstellen.Click the Create API Key.

    general-api-key

  4. Geben Sie mindestens einen Wert für Name of this key (Name dieses Schlüssels) an, gewähren Sie Vollzugriff für Mail Send (Senden von E-Mails), und wählen Sie Save (Speichern).At a minimum, provide the Name of this key and provide full access to Mail Send and select Save.

    access

  5. Ihre API wird daraufhin einmal angezeigt.Your API will be displayed at this point one time. Bewahren Sie sie an einem sicheren Ort auf.Please be sure to store it safely.

So finden Sie Ihre SendGrid-AnmeldeinformationenTo find your SendGrid credentials

  1. Klicken Sie auf das Schlüsselsymbol, um zu Ihrem Benutzernamen zu gelangen.Click the key icon to find your Username.

    key

  2. Als Kennwort wird das Kennwort verwendet, das Sie bei der Einrichtung gewählt haben.The password is the one you chose at setup. Wenn Sie Änderungen vornehmen möchten, können Sie auf Kennwort ändern oder auf Kennwort zurücksetzen klicken.You can select Change password or Reset password to make any changes.

Die Einstellungen für die Zustellung von E-Mails können durch Klicken auf die Schaltfläche Verwalten verwaltet werden.To manage your email deliverability settings, click the Manage button. Daraufhin werden Sie zum SendGrid-Dashboard umgeleitet.This will redirect to your SendGrid dashboard.

manage

Weitere Informationen zum Senden von E-Mails über SendGrid finden Sie in der Übersicht über die E-Mail-API.For more information on sending email through SendGrid, visit the Email API Overview.

Verweisen auf die SendGrid .NET-KlassenbibliothekReference the SendGrid .NET Class Library

Der einfachste Weg, die SendGrid-API abzurufen und Ihre Anwendung mit allen Abhängigkeiten zu konfigurieren, ist das SendGrid NuGet-Paket .The SendGrid NuGet package is the easiest way to get the SendGrid API and to configure your application with all dependencies. NuGet ist eine Visual Studio-Erweiterung, die in Microsoft Visual Studio 2015 und höher enthalten ist und die Installation und Aktualisierung von Bibliotheken und Tools erleichtert.NuGet is a Visual Studio extension included with Microsoft Visual Studio 2015 and above that makes it easy to install and update libraries and tools.

Hinweis

Wenn Sie NuGet installieren möchten und eine ältere Version von Visual Studio ausführen als Visual Studio 2015, besuchen Sie https://www.nuget.org und klicken Sie auf die Schaltfläche Install NuGet (NuGet installieren).To install NuGet if you are running a version of Visual Studio earlier than Visual Studio 2015, visit https://www.nuget.org, and click the Install NuGet button.

Gehen Sie folgendermaßen vor, um das SendGrid NuGet-Paket in Ihrer Anwendung zu installieren:To install the SendGrid NuGet package in your application, do the following:

  1. Klicken Sie auf Neues Projekt, und wählen Sie eine Vorlage aus.Click on New Project and select a Template.

    Erstellen eines neuen Projekts

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und klicken Sie dann auf NuGet-Pakete verwalten.In Solution Explorer, right-click References, then click Manage NuGet Packages.

    SendGrid NuGet-Paket

  3. Suchen Sie nach SendGrid, und wählen Sie in der Ergebnisliste das Element SendGrid aus.Search for SendGrid and select the SendGrid item in the results list.

  4. Wählen Sie die letzte stabile Version des NuGet-Pakets aus der Versionsdropdownliste aus, um mit dem Objektmodell und den APIs arbeiten zu können, die in diesem Artikel gezeigt werden.Select the latest stable version of the Nuget package from the version dropdown to be able to work with the object model and APIs demonstrated in this article.

    SendGrid-Paket

  5. Klicken Sie auf Installieren , um die Installation abzuschließen, und schließen Sie dann das Dialogfeld.Click Install to complete the installation, and then close this dialog.

Die .NET-Klassenbibliothek von SendGrid heißt SendGrid.SendGrid's .NET class library is called SendGrid. Sie enthält die folgenden Namespaces:It contains the following namespaces:

  • SendGrid zur Kommunikation mit der SendGrid-API.SendGrid for communicating with SendGrid’s API.
  • SendGrid.Helpers.Mail für Hilfsmethoden zum einfachen Erstellen von SendGridMessage-Objekten, die angeben, wie E-Mails gesendet werden sollen.SendGrid.Helpers.Mail for helper methods to easily create SendGridMessage objects that specify how to send emails.

Fügen Sie zu Beginn aller C#-Dateien, in denen Sie programmgesteuert auf den E-Mail-Dienst SendGrid zugreifen möchten, die folgenden Namespace-Codedeklarationen hinzu:Add the following code namespace declarations to the top of any C# file in which you want to programmatically access the SendGrid email service.

using SendGrid;
using SendGrid.Helpers.Mail;

Gewusst wie: Erstellen einer E-MailHow to: Create an Email

Mit dem SendGridMessage -Objekt können Sie eine E-Mail-Nachricht erstellen.Use the SendGridMessage object to create an email message. Nachdem das Nachrichtenobjekt erstellt wurde, können Sie Eigenschaften und Methoden festlegen, beispielsweise den E-Mail-Absender, den E-Mail-Empfänger, den Betreff und den Text der E-Mail.Once the message object is created, you can set properties and methods, including the email sender, the email recipient, and the subject and body of the email.

Das folgende Beispiel zeigt, wie ein vollständig ausgefülltes E-Mail-Objekt erstellt wird:The following example demonstrates how to create a fully populated email object:

var msg = new SendGridMessage();

msg.SetFrom(new EmailAddress("dx@example.com", "SendGrid DX Team"));

var recipients = new List<EmailAddress>
{
    new EmailAddress("jeff@example.com", "Jeff Smith"),
    new EmailAddress("anna@example.com", "Anna Lidman"),
    new EmailAddress("peter@example.com", "Peter Saddow")
};
msg.AddTos(recipients);

msg.SetSubject("Testing the SendGrid C# Library");

msg.AddContent(MimeType.Text, "Hello World plain text!");
msg.AddContent(MimeType.Html, "<p>Hello World!</p>");

Weitere Informationen über die vom Typ SendGrid unterstützen Eigenschaften und Methoden finden Sie unter sendgrid-csharp auf GitHub.For more information on all properties and methods supported by the SendGrid type, see sendgrid-csharp on GitHub.

Gewusst wie: Senden einer E-MailHow to: Send an Email

Nach der Erstellung einer E-Mail-Nachricht können Sie diese über die SendGrid-API senden.After creating an email message, you can send it using SendGrid's API. Alternativ können Sie die integrierte .NET-Bibliothek verwenden.Alternatively, you may use .NET's built in library.

Beim Senden von E-Mails müssen Sie Ihren SendGrid-API-Schlüssel angeben.Sending email requires that you supply your SendGrid API Key. Ausführliche Informationen zum Konfigurieren von API-Schlüsseln finden Sie in der Dokumentation zu SendGrid-API-Schlüsseln.If you need details about how to configure API Keys, please visit SendGrid's API Keys documentation.

Sie können diese Anmeldeinformationen im Azure-Portal speichern, indem Sie auf „Anwendungseinstellungen“ klicken und die Schlüssel-Wert-Paare unter „App-Einstellungen“ hinzufügen.You may store these credentials via your Azure Portal by clicking Application settings and adding the key/value pairs under App settings.

App-Einstellungen in Azure

Anschließend können Sie wie folgt darauf zugreifen:Then, you may access them as follows:

var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
var client = new SendGridClient(apiKey);

Die folgenden Beispiele zeigen, wie eine E-Mail-Nachricht unter Verwendung der SendGrid-Web-API mit einer Konsolenanwendung gesendet wird.The following examples show how to send an email message using the SendGrid Web API with a console application.

using System;
using System.Threading.Tasks;
using SendGrid;
using SendGrid.Helpers.Mail;

namespace Example
{
    internal class Example
    {
        private static void Main()
        {
            Execute().Wait();
        }

        static async Task Execute()
        {
            var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
            var client = new SendGridClient(apiKey);
            var msg = new SendGridMessage()
            {
                From = new EmailAddress("test@example.com", "DX Team"),
                Subject = "Hello World from the SendGrid CSharp SDK!",
                PlainTextContent = "Hello, Email!",
                HtmlContent = "<strong>Hello, Email!</strong>"
            };
            msg.AddTo(new EmailAddress("test@example.com", "Test User"));
            var response = await client.SendEmailAsync(msg);
        }
    }
}

Gewusst wie: Senden einer E-Mail aus einer ASP .NET Core-API mithilfe der MailHelper-KlasseHow to: Send email from ASP .NET Core API using MailHelper class

Das nachstehende Beispiel kann verwendet werden, um aus der ASP .NET Core-API mithilfe der MailHelper-Klasse des SendGrid.Helpers.Mail-Namespace eine einzelne E-Mail an mehrere Personen zu senden.The below example can be used to send a single email to multiple persons from the ASP .NET Core API using the MailHelper class of SendGrid.Helpers.Mail namespace. Für dieses Beispiel wird ASP .NET Core 1.0 verwendet.For this example we are using ASP .NET Core 1.0.

In diesem Beispiel wurde der API-Schlüssel in der Datei appsettings.json gespeichert. Dieser kann über das Azure-Portal überschrieben werden, wie in den obigen Beispielen gezeigt.In this example, the API key has been stored in the appsettings.json file which can be overridden from the Azure portal as shown in the above examples.

Die Inhalte der Datei appsettings.json sollten in etwa wie folgt aussehen:The contents of appsettings.json file should look similar to:

{
   "Logging": {
   "IncludeScopes": false,
   "LogLevel": {
   "Default": "Debug",
   "System": "Information",
   "Microsoft": "Information"
     }
   },
 "SENDGRID_API_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}

Zunächst müssen wir den nachstehenden Code zur Datei Startup.cs des .NET Core-API-Projekts hinzufügen.First, we need to add the below code in the Startup.cs file of the .NET Core API project. Dies ist erforderlich, damit wir unter Verwendung der Abhängigkeitsinjektion im API-Controller aus der Datei appsettings.json auf den SENDGRID_API_KEY zugreifen können.This is required so that we can access the SENDGRID_API_KEY from the appsettings.json file by using dependency injection in the API controller. Die IConfiguration-Schnittstelle kann im Konstruktor des Controllers injiziert werden, nachdem sie in der nachstehenden ConfigureServices-Methode hinzugefügt wurde.The IConfiguration interface can be injected at the constructor of the controller after adding it in the ConfigureServices method below. Der Inhalt der Datei Startup.cs sieht nach dem Hinzufügen des erforderlichen Codes in etwa so aus:The content of Startup.cs file looks like the following after adding the required code:

    public IConfigurationRoot Configuration { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        // Add mvc here
        services.AddMvc();
        services.AddSingleton<IConfiguration>(Configuration);
    }

Im Controller können wir nach Injektion der IConfiguration-Schnittstelle die CreateSingleEmailToMultipleRecipients-Methode der MailHelper-Klasse dazu verwenden, um eine einzelne E-Mail an mehrere Empfänger zu senden.At the controller, after injecting the IConfiguration interface, we can use the CreateSingleEmailToMultipleRecipients method of the MailHelper class to send a single email to multiple recipients. Die Methode akzeptiert einen zusätzlichen booleschen Parameter namens showAllRecipients.The method accepts one additional boolean parameter named showAllRecipients. Mit diesem Parameter kann gesteuert werden, ob E-Mail-Empfänger die E-Mail-Adressen der weiteren Empfänger im Abschnitt „An“ der E-Mail-Kopfzeile sehen können.This parameter can be used to control whether email recipients will be able to see each others email address in the To section of email header. Der Beispielcode für den Controller sollte in etwa so aussehen:The sample code for controller should be like below

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using SendGrid;
using SendGrid.Helpers.Mail;
using Microsoft.Extensions.Configuration;

namespace SendgridMailApp.Controllers
{
    [Route("api/[controller]")]
    public class NotificationController : Controller
    {
       private readonly IConfiguration _configuration;

       public NotificationController(IConfiguration configuration)
       {
         _configuration = configuration;
       }      
    
       [Route("SendNotification")]
       public async Task PostMessage()
       {
          var apiKey = _configuration.GetSection("SENDGRID_API_KEY").Value;
          var client = new SendGridClient(apiKey);
          var from = new EmailAddress("test1@example.com", "Example User 1");
          List<EmailAddress> tos = new List<EmailAddress>
          {
              new EmailAddress("test2@example.com", "Example User 2"),
              new EmailAddress("test3@example.com", "Example User 3"),
              new EmailAddress("test4@example.com","Example User 4")
          };
        
          var subject = "Hello world email from Sendgrid ";
          var htmlContent = "<strong>Hello world with HTML content</strong>";
          var displayRecipients = false; // set this to true if you want recipients to see each others mail id 
          var msg = MailHelper.CreateSingleEmailToMultipleRecipients(from, tos, subject, "", htmlContent, false);
          var response = await client.SendEmailAsync(msg);
      }
   }
}

Gewusst wie: Hinzufügen einer AnlageHow to: Add an attachment

Sie können einer Nachricht Anhänge hinzufügen, indem Sie die Methode AddAttachment aufrufen und mindestens den Dateinamen und den Base64-codierten Inhalt angeben, den Sie anfügen möchten.Attachments can be added to a message by calling the AddAttachment method and minimally specifying the file name and Base64 encoded content you want to attach. Sie können mehrere Anhänge anfügen, indem Sie diese Methode einmal für jede Datei aufrufen, die Sie anhängen möchten, oder indem Sie die Methode AddAttachments verwenden.You can include multiple attachments by calling this method once for each file you wish to attach or by using the AddAttachments method. Das folgende Beispiel veranschaulicht, wie ein Anhang in einer Nachricht eingefügt wird:The following example demonstrates adding an attachment to a message:

var banner2 = new Attachment()
{
    Content = Convert.ToBase64String(raw_content),
    Type = "image/png",
    Filename = "banner2.png",
    Disposition = "inline",
    ContentId = "Banner 2"
};
msg.AddAttachment(banner2);

Gewusst wie: Verwenden von E-Mail-Einstellungen zum Aktivieren von Fußzeilen sowie für Nachverfolgung und AnalysenHow to: Use mail settings to enable footers, tracking, and analytics

SendGrid bietet zusätzliche E-Mail-Funktionen durch Einstellungen für E-Mail und Nachverfolgung.SendGrid provides additional email functionality through the use of mail settings and tracking settings. Diese Einstellungen können zu einer E-Mail-Nachricht hinzugefügt werden, um bestimmte Funktionen wie Klickprotokollierung, Google Analytics, Abonnementnachverfolgung usw. zu aktivieren.These settings can be added to an email message to enable specific functionality such as click tracking, Google analytics, subscription tracking, and so on. Eine vollständige Liste der Apps finden Sie unter Settings (Filters) (Einstellungen (Filter)).For a full list of apps, see the Settings Documentation.

Apps können mithilfe von Methoden, die als Teil der SendGridMessage-Klasse implementiert wurden, auf SendGrid-E-Mails angewendet werden.Apps can be applied to SendGrid email messages using methods implemented as part of the SendGridMessage class. Die folgenden Beispiele veranschaulichen die Filter für die Fußzeile und die Klickprotokollierung:The following examples demonstrate the footer and click tracking filters:

Die folgenden Beispiele veranschaulichen die Filter für die Fußzeile und die Klickprotokollierung:The following examples demonstrate the footer and click tracking filters:

msg.SetFooterSetting(
                     true,
                     "Some Footer HTML",
                     "<strong>Some Footer Text</strong>");

KlickprotokollierungClick tracking

msg.SetClickTracking(true);

Gewusst wie: Verwenden zusätzlicher SendGrid-DiensteHow to: Use Additional SendGrid Services

SendGrid bietet verschiedene APIs und Webhooks, die Sie zur Nutzung zusätzlicher Funktionen in Ihrer Azure-Anwendung einsetzen können.SendGrid offers several APIs and webhooks that you can use to leverage additional functionality within your Azure application. Weitere Informationen finden Sie in der SendGrid-API-Referenz.For more details, see the SendGrid API Reference.

Nächste SchritteNext steps

Nachdem Sie nun mit den Grundlagen des E-Mail-Dienstes SendGrid vertraut sind, finden Sie unter diesen Links weitere Informationen.Now that you've learned the basics of the SendGrid Email service, follow these links to learn more.