Sdílet prostřednictvím


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 HtmlAndroidu , protože neexistuje způsob, jak tuto možnost rozpoznat, doporučujeme použít PlainText při odesílání e-mailů.

rozhraní API

Další videa o Xamarinu najdete na Channel 9 a YouTube.