是否可以通过共享合同向特定收件人发送电子邮件?

时间:2012-05-14 07:22:28

标签: email share windows-8 windows-runtime

我正在尝试从Metro应用程序发送电子邮件(js或c#,无所谓)共享合同是否可行?据我所知,您不能通过股份合约指定电子邮件的收件人。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

你是对的。没有办法。您可以尝试构建一个mailto到Uri并启动它

答案 2 :(得分:1)

如果你在Windows 10上使用EmailManager.ShowComposeNewEmailAsync API。它使用下面的mailto:协议。

答案 3 :(得分: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,则可以设置要使用的首选应用程序。

Find more information about using the uri launcher here.