Cet article présent comment vous pouvez utiliser .NET Multi-Platform App UI (.NET MAUI) IEmail pour ouvrir l’application d’e-mail par défaut. Après chargement de l’application d’e-mail, vous pouvez la définir pour créer un e-mail avec les destinataires, l’objet et le corps spécifiés.
L’implémentation par défaut de l’interface IEmail
est disponible via la propriété Email.Default. L’espace de noms Microsoft.Maui.ApplicationModel.Communication
contient à la fois l’interface IEmail
et la classe Email
.
Bien démarrer
Pour accéder à la fonctionnalité d’e-mail, la configuration spécifique de plateforme suivante est requise.
Si la version Android cible de votre projet est définie sur Android 11 (R API 30) ou une version ultérieure, vous devez mettre à jour votre Manifeste Android avec les requêtes utilisées par les exigences de visibilité de package d’Android.
Dans le fichier Plateformes/Android/AndroidManifest.xml, ajoutez les nœuds queries/intent
suivants dans le nœud manifest
:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
Utilisation de l’e-mail
La fonctionnalité Email fonctionne en fournissant les informations de l’e-mail comme argument à la méthode ComposeAsync. Dans cet exemple, le type EmailMessage est utilisé pour représenter les informations de l’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);
}
Fichiers joints
Lors de la création de l’e-mail fourni au client d’e-mail, vous pouvez ajouter des pièces jointes. Le type de fichier (MIME) est automatiquement détecté et vous n’avez donc pas à le spécifier. Certains clients de messagerie peuvent limiter le types de fichiers que vous envoyez ou éventuellement empêcher complètement les pièces jointes.
Utilisez la collection EmailMessage.Attachments pour gérer les fichiers joints dans un e-mail.
L'exemple suivant montre comment ajouter un fichier image à des pièces jointes d’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);
}
Différences entre les plateformes
Les clients de messagerie pour Android ne prennent pas tous en charge EmailBodyFormat.Html. Étant donné qu’il n’existe aucun moyen de le détecter, nous vous recommandons d’utiliser EmailBodyFormat.PlainText lors de l’envoi d’e-mails.