1

我正在尝试从 Metro 应用程序(js 或 c#,没关系)发送电子邮件共享合同是要走的路吗?据我所知,您无法通过 Share 合同指定电子邮件的收件人。

4

4 回答 4

2

这是对的。共享合约也可用于其他应用程序,例如 Tweetro,它们不使用电子邮件地址,因此用户必须手动输入电子邮件地址。一个mailto Uri不起作用,它必须是一个有效的Uri,否则不会显示。请参阅http://msdn.microsoft.com/en-US/library/windows/apps/hh465261,了解可以设置为通过超级按钮共享的所有选项。

于 2012-06-25T12:10:36.277 回答
1

你是对的。不可能。您可以尝试构建一个 mailto Uri 并启动它

于 2012-05-15T02:45:11.650 回答
1

Use the EmailManager.ShowComposeNewEmailAsync API if you're on Windows 10. It uses the mailto: protocol underneath.

于 2015-07-20T07:32:50.640 回答
0

可以使用 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,则可以设置要使用的首选应用程序。

在此处查找有关使用 uri 启动器的更多信息。

于 2014-12-31T17:09:05.263 回答