Xamarin.Essentials:电子邮件
Email 类使应用程序能够打开包含主题、正文和收件人(TO、CC、BCC)等指定信息的默认电子邮件应用程序。
若要访问电子邮件功能,需要以下特定于平台的设置。
如果项目的目标 Android 版本设置为 Android 11 (R API 30),则必须使用与新的包可见性要求一起使用的查询来更新 Android 清单。
打开 Properties 文件夹下的 AndroidManifest.xml 文件,并在“manifest”节点内添加以下代码 :
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
入门
若要开始使用此 API,请阅读 Xamarin.Essentials 的入门指南,确保在项目中正确安装和设置库。
提示
若要在 iOS 上使用电子邮件 API,必须在物理设备上运行它,否则将引发异常。
使用 Email
在类中添加对 Xamarin.Essentials 的引用:
using Xamarin.Essentials;
通过调用 ComposeAsync
方法和包含有关电子邮件信息的 EmailMessage
来使用 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
}
}
}
文件附件
借助此功能,应用可以在设备上的电子邮件客户端中通过电子邮件发送文件。 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);