Xamarin.Essentials:E-posta
Email sınıfı, bir uygulamanın konu, gövde ve alıcılar (TO, CC, BCC) gibi belirtilen bilgilerle varsayılan e-posta uygulamasını açmasına olanak tanır.
E-posta işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.
Projenizin Hedef Android sürümü Android 11 (R API 30) olarak ayarlandıysa, Android Bildiriminizi yeni paket görünürlüğü gereksinimleriyle kullanılan sorgularla güncelleştirmeniz gerekir.
Özellikler klasörünün altındaki AndroidManifest.xml dosyasını açın ve bildirim düğümünün içine aşağıdakileri ekleyin:
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
Bu API'yi kullanmaya başlamak için kitaplığın projelerinizde düzgün yüklendiğinden ve ayarlandığından emin olmak için Xamarin.Essentials kullanmaya başlama kılavuzunu okuyun.
İpucu
iOS'ta E-posta API'sini kullanmak için bunu fiziksel bir cihazda çalıştırmanız gerekir, aksi takdirde bir özel durum oluşturulur.
Sınıfınızda için Xamarin.Essentials bir başvuru ekleyin:
using Xamarin.Essentials;
E-posta işlevi, yöntemini e-posta hakkında bilgi içeren bir EmailMessage
ile çağırarak ComposeAsync
çalışır:
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
}
}
}
Bu özellik, bir uygulamanın cihazdaki e-posta istemcilerindeki dosyaları e-postayla göndermesini sağlar. Xamarin.Essentials dosya türünü (MIME) otomatik olarak algılar ve dosyanın ek olarak eklenmesini ister. Her e-posta istemcisi farklıdır ve yalnızca belirli dosya uzantılarını destekleyemeyebilir veya hiç desteklemeyebilir.
Diske metin yazma ve e-posta eki olarak ekleme örneği aşağıda verilmiştir:
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 için tüm e-posta istemcileri desteklemez Html
, çünkü bunu algılamanın hiçbir yolu yoktur, e-posta gönderirken kullanmanızı PlainText
öneririz.
Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.