Condividi tramite


E-mail

Sfogliare l'esempio. Esplorare l'esempio

Questo articolo descrive come usare l'interfaccia dell'interfaccia dell'interfaccia dell'app multipiattaforma .NET (.NET MAUI) IEmail per aprire l'app di posta elettronica predefinita. Quando l'app di posta elettronica viene caricata, può essere impostata per creare un nuovo messaggio di posta elettronica con i destinatari, l'oggetto e il corpo specificati.

L'implementazione predefinita dell'interfaccia IEmail è disponibile tramite la Email.Default proprietà . Sia l'interfaccia che Email la IEmail classe sono contenute nello spazio dei Microsoft.Maui.ApplicationModel.Communication nomi .

Operazioni preliminari

Per accedere alla funzionalità di posta elettronica, è necessaria la configurazione specifica della piattaforma seguente.

Se la versione di Android di destinazione del progetto è impostata su Android 11 (API R 30) o versione successiva, è necessario aggiornare il manifesto Android con query che usano i requisiti di visibilità dei pacchetti android.

Nel file Platforms/Android/AndroidManifest.xml aggiungere i nodi seguenti queries/intent nel manifest nodo:

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

Uso di Email

La funzionalità Posta elettronica funziona fornendo le informazioni di posta elettronica come argomento al ComposeAsync metodo . In questo esempio, il EmailMessage tipo viene usato per rappresentare le informazioni di posta elettronica:

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

Allegati file

Quando si crea il messaggio di posta elettronica fornito al client di posta elettronica, è possibile aggiungere allegati di file. Il tipo di file (MIME) viene rilevato automaticamente, quindi non è necessario specificarlo. Alcuni client di posta elettronica possono limitare i tipi di file inviati o impedire del tutto gli allegati.

Usare la EmailMessage.Attachments raccolta per gestire i file allegati a un messaggio di posta elettronica.

Nell'esempio seguente viene illustrato l'aggiunta di un file di immagine agli allegati di posta elettronica.

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

Differenze tra le piattaforme

Non tutti i client di posta elettronica per il supporto EmailBodyFormat.Htmlandroid, poiché non è possibile rilevare questo problema, è consigliabile usare EmailBodyFormat.PlainText quando si inviano messaggi di posta elettronica.