Я пытаюсь отправить электронное письмо из приложения Metro (js или c #, не имеет значения). Является ли контракт на совместное использование подходящим способом? Насколько я могу судить, вы не можете указать получателя электронной почты через контракт Share.
Можно ли отправить электронное письмо конкретному получателю через контракт на акции?
Ответы (4)
Ты прав. Выхода нет. Вы можете попробовать создать mailto Uri и запустить его.
Это верно. Контракт на совместное использование также доступен для других приложений, например Tweetro, которые не используют адрес электронной почты, поэтому пользователь должен вводить адрес электронной почты для каждой руки. Uri mailto не работает, это должен быть допустимый Uri, иначе он не будет отображаться. См. http://msdn.microsoft.com/en-US/library/windows/apps/hh465261 для всех параметров, которые можно настроить для совместного использования с помощью чудо-кнопок.
Используйте EmailManager.ShowComposeNewEmailAsync API, если вы работаете в Windows 10. Он использует протокол mailto:, указанный ниже.
Вы можете использовать схему 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 можно найти здесь.