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 projeto estiver definida como Android 11 (API R 30), você deverá atualizar o manifesto do Android com consultas 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>
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.
Adicione uma referência a Xamarin.Essentials em sua classe:
using Xamarin.Essentials;
A funcionalidade Email funciona chamando o ComposeAsync
método com um EmailMessage
que contém informações sobre o 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
}
}
}
Esse recurso permite que um aplicativo envie arquivos por email em clientes de email no dispositivo. Xamarin.Essentials detectará automaticamente o tipo de arquivo (MIME) e solicitará que o arquivo seja adicionado como 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);
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.
Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.