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.