Freigeben über


Email

Beispiel durchsuchen.Durchsuchen Sie das Beispiel

In diesem Element wird beschrieben, wie Sie die Schnittstelle IEmail von .NET Multi-Platform App UI (.NET MAUI) verwenden können, um die Standard-E-Mail-App zu öffnen. Wenn die E-Mail-App geladen wird, kann sie so festgelegt werden, dass eine neue E-Mail mit den angegebenen Empfänger*innen, dem Betreff und dem Text erstellt wird.

Die Standardimplementierung der Schnittstelle IEmail ist über die Eigenschaft Email.Default verfügbar. Sowohl die IEmail-Schnittstelle als auch die Email-Klasse sind im Microsoft.Maui.ApplicationModel.Communication-Namespace enthalten.

Erste Schritte

Für den Zugriff auf die Email-Funktion ist die folgende plattformspezifische Einrichtung erforderlich.

Wenn die Android-Zielversion Ihres Projekts auf Android 11 (R API 30) oder höher gesetzt ist, müssen Sie Ihr Android-Manifest mit Abfragen aktualisieren, die die Paketsichtbarkeitsanforderungen von Android verwenden.

Fügen Sie in der Datei Platforms/Android/AndroidManifest.xml die folgenden queries/intent-Knoten zum Knoten manifest hinzu:

<queries>
  <intent>
    <action android:name="android.intent.action.SENDTO" />
    <data android:scheme="mailto" />
  </intent>
</queries>

Verwenden von E-Mail

Die E-Mail-Funktion funktioniert, indem die E-Mail-Informationen als Argument für die Methode ComposeAsync bereitgestellt werden. In diesem Beispiel wird der Typ EmailMessage verwendet, um die E-Mail-Informationen darzustellen:

if (Email.Default.IsComposeSupported)
{

    string subject = "Hello friends!";
    string body = "It was great to see you last weekend.";
    string[] recipients = new[] { "john@contoso.com", "jane@contoso.com" };

    var message = new EmailMessage
    {
        Subject = subject,
        Body = body,
        BodyFormat = EmailBodyFormat.PlainText,
        To = new List<string>(recipients)
    };

    await Email.Default.ComposeAsync(message);
}

Dateianlagen

Beim Erstellen der E-Mail, die dem E-Mail-Client bereitgestellt wird, können Sie Dateianlagen hinzufügen. Der Dateityp (MIME) wird automatisch erkannt, sodass Sie ihn nicht angeben müssen. Einige E-Mail-Clients beschränken möglicherweise die Dateitypen, die Sie senden, oder verhindern Anlagen komplett.

Verwenden Sie die Auflistung EmailMessage.Attachments, um die an eine E-Mail angefügten Dateien zu verwalten.

Das folgende Beispiel veranschaulicht, wie eine Bilddatei zu E-Mail-Anlagen hinzugefügt wird:

if (Email.Default.IsComposeSupported)
{

    string subject = "Hello friends!";
    string body = "It was great to see you last weekend. I've attached a photo of our adventures together.";
    string[] recipients = new[] { "john@contoso.com", "jane@contoso.com" };

    var message = new EmailMessage
    {
        Subject = subject,
        Body = body,
        BodyFormat = EmailBodyFormat.PlainText,
        To = new List<string>(recipients)
    };

    string picturePath = Path.Combine(FileSystem.CacheDirectory, "memories.jpg");

    message.Attachments.Add(new EmailAttachment(picturePath));

    await Email.Default.ComposeAsync(message);
}

Plattformunterschiede

Nicht alle E-Mail-Clients für Android unterstützen EmailBodyFormat.Html. Da es keine Möglichkeit gibt, dies zu erkennen, wird beim Versenden von E-Mails die Verwendung von EmailBodyFormat.PlainText empfohlen.