Xamarin.EssentialsЭлектронная почта.
Класс Email позволяет приложению открывать приложение электронной почты по умолчанию с указанной информацией, включая тему, текст и получателей (TO, CC, BCC).
Для доступа к функции Email нужно создать описанную ниже конфигурацию для конкретной платформы.
Если целевой версией Android для проекта является Android 11 (API R 30), необходимо обновить манифест Android с помощью запросов, которые используются с новыми требованиями к видимости пакета.
Откройте файл AndroidManifest.xml в папке Properties и добавьте приведенный ниже код в узел manifest:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
Начало работы
Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.
Совет
Чтобы использовать API электронной почты в iOS, запустите его на физическом устройстве, в противном случае будет создано исключение.
Использование Email
Добавьте ссылку на Xamarin.Essentials в своем классе:
using Xamarin.Essentials;
Функциональные возможности электронной почты работают путем вызова ComposeAsync
метода с EmailMessage
данными электронной почты:
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
}
}
}
Вложения файлов
Эта функция позволяет приложению отправлять файлы по электронной почте в почтовых клиентах на устройстве. Xamarin.Essentials автоматически обнаруживает тип файла (MIME) и запрашивает его добавление в качестве вложения. Почтовые клиенты отличаются друг от друга. Какие-то из них могут поддерживать только файлы с определенными расширениями или не поддерживать файлы вообще.
Ниже приведен пример записи текста на диск и добавления его в качестве вложения электронной почты.
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);
Различия платформ
Не все почтовые клиенты для Android поддерживают Html
. Так как не существует способа определить это, при отправке писем рекомендуем использовать PlainText
.