Email

Procurar amostra. Procurar no exemplo

Esse artigo descreve como você pode usar a interface do aplicativo multiplataforma .NET (.NET MAUI) IEmail para abrir o aplicativo de email padrão. Quando o aplicativo de email é carregado, ele pode ser configurado para criar um novo email com os destinatários, assunto e corpo especificados.

A implementação padrão da interface IEmail está disponível por meio da propriedade Email.Default. A interface IEmail e a classe Email estão contidas no namespace Microsoft.Maui.ApplicationModel.Communication.

Introdução

Para acessar a funcionalidade de email, é necessária a seguinte configuração específica da plataforma.

Se a versão Target Android do seu projeto estiver definida como Android 11 (R API 30) ou superior, você deverá atualizar seu Android Manifest com consultas que usam os requisitos de visibilidade do pacote do Android.

No arquivo Platforms/Android/AndroidManifest.xml, adicione os seguintes nós queries/intent no nó manifest:

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

Como usar Email

A funcionalidade Email funciona fornecendo as informações do email como argumento para o método ComposeAsync. Nesse exemplo, o tipo EmailMessage é usado para representar as informações do email:

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

Anexos de arquivo

Ao criar o email fornecido ao cliente de email, você pode adicionar anexos de arquivo. O tipo de arquivo (MIME) é detectado automaticamente, portanto não é necessário especificá-lo. Alguns clientes de email podem restringir os tipos de arquivos que você envia ou possivelmente impedir completamente os anexos.

Use a coleção EmailMessage.Attachments para gerenciar os arquivos anexados a um email.

O exemplo a seguir demonstra a adição de um arquivo de imagem aos anexos de email.

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

Diferenças entre plataformas

Nem todos os clientes de email para Android suportam EmailBodyFormat.Html, como não há como detectar isso, recomendamos usar EmailBodyFormat.PlainText ao enviar emails.