Xamarin.Essentials:電子郵件

電子郵件類別使應用程式能夠開啟包含主題、本文和收件者 (收件者、副本、密件副本) 等指定資訊的預設電子郵件應用程式。

若要存取 電子郵件 功能,需要下列平臺特定的設定。

如果您的項目目標 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,您必須在實體裝置上執行它,否則系統將會擲回例外狀況。

使用電子郵件

在類別中新增 的 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

API

Channel 9YouTube 上尋找更多 Xamarin 影片。