Xamarin.Essentials:電子メール
アプリケーションで Email クラスを使用すると、件名、本文、受信者 (TO、CC、BCC) などの情報を指定して既定のメール アプリケーションを開くことができます。
Email の機能にアクセスするには、次のプラットフォーム固有の設定が必要です。
プロジェクトのターゲット Android バージョンが Android 11 (R API 30) に設定される場合、新しいパッケージの可視性要件で使用されるクエリで Android マニフェストを更新する必要があります。
[プロパティ] フォルダーにある AndroidManifest.xml ファイルを開き、manifest ノードの内部に以下を追加します。
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
作業開始
この API の使用を始めるには、Xamarin.Essentials の概要ガイドを読み、ライブラリが正しくインストールされてプロジェクトに設定されていることを確認してください。
ヒント
iOS で Email API を使用するには、物理デバイスで実行されている必要があります。それ以外の場合、例外がスローされます。
Email の使用
クラスの Xamarin.Essentials への参照を追加します。
using Xamarin.Essentials;
Email 機能は、メールに関する情報を含む EmailMessage
を使用して ComposeAsync
メソッドを呼び出すと機能します。
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
を使用することをお勧めします。