Xamarin.EssentialsIndirizzo di posta elettronica:

La classe Email consente a un'applicazione di aprire l'applicazione di posta elettronica predefinita con le informazioni specificate, inclusi oggetto, corpo e destinatari (A, Cc, Ccn).

Per accedere alla funzionalità 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) è necessario aggiornare il manifesto Android con query usate con i nuovi requisiti di visibilità del pacchetto.

Aprire il file AndroidManifest.xml nella cartella Proprietà e aggiungere quanto segue all'interno del nodo manifest:

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

Operazioni preliminari

Per iniziare a usare questa API, leggere la guida introduttiva per Xamarin.Essentials assicurarsi che la libreria sia installata e configurata correttamente nei progetti.

Suggerimento

Per usare l'API Email in iOS, è necessario eseguirla in un dispositivo fisico, altrimenti verrà generata un'eccezione.

Uso di Email

Aggiungere un riferimento a Xamarin.Essentials nella classe :

using Xamarin.Essentials;

La funzionalità Email funziona chiamando il ComposeAsync metodo con un EmailMessage che contiene informazioni sul messaggio di posta elettronica:

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

File allegati

Questa funzionalità consente a un'app di inviare file di posta elettronica nei client di posta elettronica nel dispositivo. Xamarin.Essentials rileverà automaticamente il tipo di file (MIME) e richiederà l'aggiunta del file come allegato. Ogni client di posta elettronica è diverso e può supportare solo estensioni di file specifiche o nessuna.

Il seguente esempio mostra la scrittura di testo su disco e l'aggiunta del testo come allegato di posta elettronica:

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

Differenze tra le piattaforme

Non tutti i client di posta elettronica per Android supportano Html. Dato che non è possibile rilevare questa condizione, è consigliabile usare PlainText durante l'invio di messaggi di posta elettronica.

API

Altri video di Xamarin sono disponibili su Channel 9 e YouTube.