Xamarin.Essentials:Email
Kelas Email memungkinkan aplikasi untuk membuka aplikasi email default dengan informasi tertentu termasuk subjek, isi, dan penerima (TO, CC, BCC).
Untuk mengakses fungsionalitas Email , diperlukan penyiapan spesifik platform berikut.
Jika versi Target Android proyek Anda diatur ke Android 11 (R API 30) Anda harus memperbarui Android Manifest dengan kueri yang digunakan dengan persyaratan visibilitas paket baru.
Buka file AndroidManifest.xml di bawah folder Properti dan tambahkan yang berikut ini di dalam node manifes:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
Memulai
Untuk mulai menggunakan API ini, baca panduan memulai untuk Xamarin.Essentials memastikan pustaka diinstal dan disiapkan dengan benar di proyek Anda.
Tip
Untuk menggunakan API Email di iOS, Anda harus menjalankannya di perangkat fisik, jika tidak, pengecualian akan dilemparkan.
Menggunakan Email
Tambahkan referensi ke Xamarin.Essentials di kelas Anda:
using Xamarin.Essentials;
Fungsionalitas Email berfungsi dengan memanggil ComposeAsync
metode dengan yang EmailMessage
berisi informasi tentang 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
}
}
}
Lampiran File
Fitur ini memungkinkan aplikasi untuk mengirim file email di klien email di perangkat. Xamarin.Essentials akan secara otomatis mendeteksi jenis file (MIME) dan meminta file ditambahkan sebagai lampiran. Setiap klien email berbeda dan hanya dapat mendukung ekstensi file tertentu, atau tidak sama sekali.
Berikut adalah sampel penulisan teks ke disk dan menambahkannya sebagai lampiran 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);
Perbedaan Platform
Tidak semua klien email untuk dukungan Html
Android , karena tidak ada cara untuk mendeteksi hal ini, sebaiknya gunakan PlainText
saat mengirim email.