Xamarin.Essentials: E-mail

Třída Email umožňuje aplikaci otevřít výchozí e-mailovou aplikaci se zadanými informacemi, včetně předmětu, textu a příjemců (TO, CC, BCC).

Pro přístup k funkci E-mail se vyžaduje následující nastavení specifické pro platformu.

Pokud je cílová verze vašeho projektu pro Android nastavená na Android 11 (R API 30), musíte manifest pro Android aktualizovat 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 do uzlu manifestu přidejte 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 příručku Začínáme pro a ujistěte se, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.

Tip

Pokud chcete používat rozhraní API pro e-maily v iOSu, musíte ho spustit na fyzickém zařízení, jinak se vyvolá výjimka.

Pomocí e-mailu

Do třídy Xamarin.Essentials přidejte odkaz na :

using Xamarin.Essentials;

Funkce E-mail funguje tak, že ComposeAsync zavolá metodu , EmailMessage která obsahuje informace 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 poslat e-mailem soubory v e-mailových klientech na zařízení. Xamarin.Essentials automaticky rozpozná typ souboru (MIME) a vyžádá si přidání souboru jako přílohy. 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šichni e-mailový klienti pro podporu Androidu, protože neexistuje způsob, jak to zjistit, doporučujeme používat Html při PlainText odesílání e-mailů.

rozhraní API

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