Is it possible to send an email to a specific reci

2019-08-07 13:14发布

I'm trying to send an email from a Metro application (js or c#, doesn't matter) Is Share Contract the way to go? As far as I can tell you can't specify the email's recipient through the Share contract.

4条回答
Luminary・发光体
2楼-- · 2019-08-07 13:46

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

查看更多
兄弟一词,经得起流年.
3楼-- · 2019-08-07 13:53

You can use a Uri scheme to open an app, but you need to use LaunchUriAsync. Also, with LauncherOptions set, if the user doesn't have the app installed Windows will bring them to the Store.

For example, here is my approach that only opens the mail app to side of the screen (I use it for error reporting), or if they have Outlook installed it will use it instead:

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);
}

In the case of an email uri, the app is installed already, so it should work equally for every user. Additionally, if you know the FamilyPackageName you can set the preferred app to use.

Find more information about using the uri launcher here.

查看更多
Animai°情兽
4楼-- · 2019-08-07 13:56

You are correct. There is no way. You could try constructing a mailto Uri and launching it

查看更多
Evening l夕情丶
5楼-- · 2019-08-07 13:58

This is correct. The share contract is also available for other apps, i.e. Tweetro, which do not use an email address, therefore the user must type in an email address per hand. A mailto Uri does not work, it must be a valid Uri, otherwise it will not be displayed. See http://msdn.microsoft.com/en-US/library/windows/apps/hh465261 for all options you can set up for sharing via charms.

查看更多
登录 后发表回答