Udostępnij za pośrednictwem


Email

Przeglądaj przykład. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI), IEmail aby otworzyć domyślną aplikację poczty e-mail. Po załadowaniu aplikacji poczty e-mail można ją ustawić tak, aby utworzyć nową wiadomość e-mail z określonymi adresatami, tematem i treścią.

Domyślna implementacja interfejsu IEmail jest dostępna za pośrednictwem Email.Default właściwości . Zarówno interfejs, jak IEmail i Email klasa są zawarte w Microsoft.Maui.ApplicationModel.Communication przestrzeni nazw.

Rozpocznij

Aby uzyskać dostęp do funkcji poczty e-mail, wymagana jest następująca konfiguracja specyficzna dla platformy.

Jeśli docelowa wersja systemu Android projektu jest ustawiona na Android 11 (R API 30) lub nowszą, musisz zaktualizować manifest systemu Android za pomocą zapytań, które korzystają z wymagań dotyczących widoczności pakietów systemu Android.

W pliku Platformy/Android/AndroidManifest.xml dodaj następujące queries/intent węzły w węźlemanifest:

<queries>
  <intent>
    <action android:name="android.intent.action.SENDTO" />
    <data android:scheme="mailto" />
  </intent>
</queries>

Korzystanie z poczty e-mail

Funkcja Poczta e-mail działa, podając informacje e-mail jako argument metody ComposeAsync . W tym przykładzie EmailMessage typ jest używany do reprezentowania informacji e-mail:

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);
}

Pliki załączników

Podczas tworzenia wiadomości e-mail udostępnionej klientowi poczty e-mail możesz dodać załączniki plików. Typ pliku (MIME) jest wykrywany automatycznie, więc nie trzeba go określać. Niektórzy klienci poczty mogą ograniczyć typy wysyłanych plików lub w ogóle uniemożliwić załączniki.

Użyj kolekcji EmailMessage.Attachments , aby zarządzać plikami dołączonymi do wiadomości e-mail.

W poniższym przykładzie pokazano dodawanie pliku obrazu do załączników wiadomości e-mail.

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);
}

Różnice między platformami

Nie wszyscy klienci poczty e-mail dla systemu Android obsługują EmailBodyFormat.Htmlsystem , ponieważ nie ma możliwości wykrycia tego, zalecamy użycie podczas EmailBodyFormat.PlainText wysyłania wiadomości e-mail.