Можно ли отправить электронное письмо конкретному получателю через контракт на акции?

Я пытаюсь отправить электронное письмо из приложения Metro (js или c #, не имеет значения). Является ли контракт на совместное использование подходящим способом? Насколько я могу судить, вы не можете указать получателя электронной почты через контракт Share.


person Elad Katz    schedule 14.05.2012    source источник


Ответы (4)


Ты прав. Выхода нет. Вы можете попробовать создать mailto Uri и запустить его.

person Robert Levy    schedule 15.05.2012

Это верно. Контракт на совместное использование также доступен для других приложений, например Tweetro, которые не используют адрес электронной почты, поэтому пользователь должен вводить адрес электронной почты для каждой руки. Uri mailto не работает, это должен быть допустимый Uri, иначе он не будет отображаться. См. http://msdn.microsoft.com/en-US/library/windows/apps/hh465261 для всех параметров, которые можно настроить для совместного использования с помощью чудо-кнопок.

person Александр Фишер    schedule 25.06.2012

Используйте EmailManager.ShowComposeNewEmailAsync API, если вы работаете в Windows 10. Он использует протокол mailto:, указанный ниже.

person Arunjeet Singh    schedule 20.07.2015

Вы можете использовать схему Uri для открытия приложения, но вам необходимо использовать LaunchUriAsync. Кроме того, с установленным LauncherOptions, если у пользователя не установлено приложение, Windows перенесет его в Магазин.

Например, вот мой подход, который открывает почтовое приложение только сбоку экрана (я использую его для отчетов об ошибках), или, если у них установлен Outlook, он будет использовать его вместо этого:

private async Task<bool> ReportErrorMessage(string detailedErrorMessage)
{
    var uri = new Uri(string.Format("mailto:[email protected]?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 можно найти здесь.

person Lance McCarthy    schedule 31.12.2014