Xamarin.EssentialsEmail:

A classe Email permite que um aplicativo abra o aplicativo de email padrão com uma informação especificada, incluindo assunto, corpo e destinatários (PARA, CC, CCO).

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

Se a versão do Android de destino do seu projeto estiver definida como Android 11 (R API 30), você deverá atualizar o manifesto do Android com consultas que são usadas com os novos requisitos de visibilidade do pacote.

Abra o arquivo AndroidManifest.xml na pasta Propriedades e adicione o seguinte dentro do nó do manifesto:

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

Introdução

Para começar a usar essa API, leia o guia de introdução para Xamarin.Essentials garantir que a biblioteca esteja instalada e configurada corretamente em seus projetos.

Dica

Para usar a API de Email no iOS, é preciso executá-la em um dispositivo físico; caso contrário, uma exceção será lançada.

Como usar Email

Adicione uma referência à Xamarin.Essentials sua classe:

using Xamarin.Essentials;

A funcionalidade Email funciona chamando o método com um EmailMessage que contém informações sobre o ComposeAsync email:

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

Anexos de Arquivo

Esse recurso permite que um aplicativo envie arquivos por e-mail em clientes de e-mail no dispositivo. Xamarin.Essentials detectará automaticamente o tipo de arquivo (MIME) e solicitará que o arquivo seja adicionado como um anexo. Cada cliente de e-mail é diferente e pode suportar apenas extensões de arquivo específicas ou nenhuma.

Aqui está um exemplo de como gravar texto no disco e adicioná-lo como um anexo de email:

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

Diferenças entre plataformas

Nem todos os clientes de email para Android dão suporte para Html. Como não há nenhuma maneira de detectar isso, é recomendável usar PlainText ao enviar emails.

API

Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.