Correo electrónico

Examinar ejemplo. Examinar el ejemplo

En este artículo se describe cómo puedes usar la interfaz IEmail de .NET Multi-platform App UI (.NET MAUI) para abrir la aplicación de correo electrónico predeterminada. Cuando se carga la aplicación de correo electrónico, se puede establecer para crear un nuevo correo electrónico con los destinatarios, el asunto y el cuerpo especificados.

La implementación predeterminada de la interfaz IEmail está disponible a través de la propiedad Email.Default. Tanto la interfaz IEmail como la clase Email están contenidas en el espacio de nombres Microsoft.Maui.ApplicationModel.Communication.

Introducción

Para acceder a la función del correo electrónico, se requiere la siguiente configuración específica para la plataforma.

Si la versión de Android de destino del proyecto se establece en Android 11 (R API 30) o superior, debes actualizar el manifiesto de Android con las consultas que se usan con los requisitos de visibilidad de los paquetes de Android.

En el archivo Platforms/Android/AndroidManifest.xml, agrega los nodos queries/intent siguientes en el nodo manifest:

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

Uso del correo electrónico

La funcionalidad Email funciona proporcionando la información de correo electrónico como argumento para el método ComposeAsync. En este ejemplo, el tipo EmailMessage se usa para representar la información de correo electrónico:

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

Datos adjuntos al archivo

Al crear el correo electrónico proporcionado al cliente de correo electrónico, puedes agregar datos adjuntos de archivos. El tipo de archivo (MIME) se detecta automáticamente, por lo que no es necesario especificarlo. Algunos clientes de correo pueden restringir los tipos de archivos que envíes o, posiblemente, impedir los datos adjuntos por completo.

Usa la colección EmailMessage.Attachments para administrar los archivos adjuntos a un correo electrónico.

En el siguiente ejemplo se demuestra cómo agregar un archivo de imagen los datos adjuntos de un mensaje.

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

Diferencias entre plataformas

No todos los clientes de correo electrónico para Android admiten EmailBodyFormat.Html. Puesto que no hay ninguna manera de detectar esto, recomendamos usar EmailBodyFormat.PlainText para enviar correos electrónicos.