Metroアプリケーション(jsまたはc#、関係ありません)から電子メールを送信しようとしています。ShareContractは道のりですか?私が知る限り、共有契約を通じてメールの受信者を指定することはできません。
4 に答える
正解です。共有契約は、メールアドレスを使用しない他のアプリ、つまりTweetroでも利用できるため、ユーザーは手ごとにメールアドレスを入力する必要があります。mailto Uriは機能しません。有効なURIである必要があります。そうでない場合、表示されません。チャームを介して共有するために設定できるすべてのオプションについては、 http://msdn.microsoft.com/en-US/library/windows/apps/hh465261を参照してください。
あなたは正しいです。道はない。mailtoUriを作成して起動してみてください
Windows 10を使用している場合は、EmailManager.ShowComposeNewEmailAsync APIを使用します。このAPIは、その下にあるmailto:プロトコルを使用します。
Uriスキームを使用してアプリを開くことができますが、LaunchUriAsyncを使用する必要があります。また、LauncherOptionsが設定されている場合、ユーザーがアプリをインストールしていない場合、Windowsはそれらをストアに移動します。
たとえば、メールアプリを画面の横にのみ開く(エラー報告に使用します)、またはOutlookがインストールされている場合は、代わりにメールアプリを使用するという私のアプローチは次のとおりです。
private async Task<bool> ReportErrorMessage(string detailedErrorMessage)
{
var uri = new Uri(string.Format("mailto:email.address@domain.com?subject=Error Report&body={0}", detailedErrorMessage), UriKind.Absolute);
var options = new Windows.System.LauncherOptions
{
DisplayApplicationPicker = true,
DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseLess,
PreferredApplicationPackageFamilyName = "microsoft.windowscommunicationsapps_8wekyb3d8bbwe",
PreferredApplicationDisplayName = "Mail"
};
return await Windows.System.Launcher.LaunchUriAsync(uri, options);
}
メールURIの場合、アプリはすでにインストールされているため、すべてのユーザーに対して同等に機能するはずです。さらに、FamilyPackageNameがわかっている場合は、使用する優先アプリを設定できます。