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
Vídeo relacionados
Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.