Xamarin.Essentials:E-mail
Třída E-mail umožňuje aplikaci otevřít výchozí e-mailovou aplikaci se zadanými informacemi, včetně předmětu, textu a příjemců (KOMU, KOPIE, SKRYTÁ).
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), musíte aktualizovat manifest Androidu pomocí dotazů, které se používají s novými požadavky na viditelnost balíčku.
Otevřete soubor AndroidManifest.xml ve složce Vlastnosti a přidejte do uzlu manifestu následující kód:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
Začínáme
Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.
Tip
Pokud chcete používat e-mailové rozhraní API v iOSu, musíte ho spustit na fyzickém zařízení, jinak se vyvolá výjimka.
Používání e-mailu
Přidejte do Xamarin.Essentials předmětu odkaz:
using Xamarin.Essentials;
Funkce e-mailu funguje voláním ComposeAsync
metody s informacemi EmailMessage
o e-mailu:
public class EmailTest
{
public async Task SendEmail(string subject, string body, List<string> recipients)
{
try
{
var message = new EmailMessage
{
Subject = subject,
Body = body,
To = recipients,
//Cc = ccRecipients,
//Bcc = bccRecipients
};
await Email.ComposeAsync(message);
}
catch (FeatureNotSupportedException fbsEx)
{
// Email is not supported on this device
}
catch (Exception ex)
{
// Some other exception occurred
}
}
}
Přílohy souborů
Tato funkce umožňuje aplikaci e-mailovat soubory v e-mailových klientech na zařízení. Xamarin.Essentials automaticky rozpozná typ souboru (MIME) a požádá o přidání souboru jako přílohu. Každý e-mailový klient je jiný a může podporovat jenom konkrétní přípony souborů nebo vůbec žádné.
Tady je ukázka zápisu textu na disk a jeho přidání jako přílohy e-mailu:
var message = new EmailMessage
{
Subject = "Hello",
Body = "World",
};
var fn = "Attachment.txt";
var file = Path.Combine(FileSystem.CacheDirectory, fn);
File.WriteAllText(file, "Hello World");
message.Attachments.Add(new EmailAttachment(file));
await Email.ComposeAsync(message);
Rozdíly mezi platformami
Ne všechny e-mailové klienty pro podporu Html
Androidu , protože neexistuje způsob, jak tuto možnost rozpoznat, doporučujeme použít PlainText
při odesílání e-mailů.