Tento článek popisuje, jak pomocí rozhraní .NET Multi-Platform App UI (.NET MAUI) IEmail otevřít výchozí e-mailovou aplikaci. Když je e-mailová aplikace načtená, můžete ji nastavit tak, aby se vytvořil nový e-mail se zadanými příjemci, předmětem a textem.
Výchozí implementace IEmail
rozhraní je k dispozici prostřednictvím Email.Default vlastnosti. Rozhraní IEmail
i Email
třída jsou obsaženy v Microsoft.Maui.ApplicationModel.Communication
oboru názvů.
Začínáme
Pro přístup k funkcím e-mailu se vyžaduje následující nastavení specifické pro platformu.
Pokud je cílová verze androidu vašeho projektu nastavená na Android 11 (R API 30) nebo vyšší, musíte aktualizovat manifest Androidu pomocí dotazů, které používají požadavky na viditelnost balíčku Androidu.
V souboru Platformy/ Android/AndroidManifest.xml přidejte do uzlu následující queries/intent
uzlymanifest
:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
Používání e-mailu
Funkce e-mailu funguje tak, že poskytuje e-mailové informace jako argument metody ComposeAsync . V tomto příkladu EmailMessage se typ používá k vyjádření informací o e-mailu:
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);
}
Souborové přílohy
Při vytváření e-mailu poskytnutého e-mailovému klientovi můžete přidat přílohy souborů. Typ souboru (MIME) se automaticky zjistí, takže ho nemusíte zadávat. Někteří poštovní klienti můžou omezit typy odesílaných souborů nebo úplně zabránit přílohám.
EmailMessage.Attachments Pomocí kolekce můžete spravovat soubory připojené k e-mailu.
Následující příklad ukazuje přidání souboru obrázku do příloh e-mailu.
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);
}
Rozdíly mezi platformami
Ne všechny e-mailové klienty pro podporu EmailBodyFormat.HtmlAndroidu , protože neexistuje způsob, jak to zjistit, doporučujeme použít EmailBodyFormat.PlainText při odesílání e-mailů.