2015-01-24 4 views
0

Я разрабатываю приложение для магазина Windows, используя winRT C++. Я могу поделиться файлом по электронной почте, но он не может указать адрес электронной почты получателя. Беллоу является частью моего кода, отправляет файл: -Как отправить файл на определенный адрес электронной почты

DataRequest^ request = e->Request; 
request->Data->Properties->Title = "Testing"; 
request->Data->Properties->Description = "Email With Attachment"; 

DataRequestDeferral^ deferral = request->GetDeferral(); 
create_task(Windows::ApplicationModel::Package::Current->InstalledLocation->GetFileAsync("testing.pdf")).then([this, request, deferral](task<StorageFile^> getFileTask) 
{ 
    try 
    { 
     auto pdfFile = getFileTask.get(); 
     auto storageItems = ref new Platform::Collections::Vector<IStorageItem^>(); 
     storageItems->Append(pdfFile); 
     request->Data->SetStorageItems(storageItems); 
     deferral->Complete(); 
    } 
    catch (Exception^ ex) 
    { 
     // Calling FailWithDisplayText() also calls Complete on the deferral. 
     request->FailWithDisplayText(ex->Message); 
    } 
}); 

Как я могу отправить файл вложения в конкретный приемник электронной почты без заливки в адресе электронной почты вручную.

ответ

2

В Windows 8 нет возможности сделать это; вы можете либо поделиться файлом (как в коде выше), либо отправить электронное письмо на явный адрес (используя LaunchUriAsync с URI mailto:), но вы не можете обойти оба.

Обратите внимание, что доля Целевые приложения могут ask the system to remember recent/frequent targets, так что если пользователь по электронной почте [email protected] недавно то, что может показаться, как прямой вариант в Уставном Picker. Это приложение используется встроенным почтовым приложением.

Другой вариант с низким уровнем - copy the e-mail address to the clipboard и попросите пользователя просто вставить его, когда приложение электронной почты запускается (или копирует файл в буфер обмена и использует подход mailto:).

+0

Спасибо за ваш ответ. Но почему мы не можем делать это в приложении для магазина Windows? – user3227056

+1

Для этого просто нет API. Windows Phone 8.1 (который был выпущен после Windows 8.1) имеет такой API. –

+0

Это означает, что до сих пор мы все еще не можем делать оба действия в одно и то же время или за исключением того, что у вас есть идея других сделать это? – user3227056

0

Похоже, что все, что вы хотите сделать, это создать новое сообщение электронной почты с определенным получателем. Самый простой способ сделать это - использовать API EmailManager.ShowComposeNewEmailAsync. Я бы порекомендовал также хранить доступ в качестве опции, если ваши пользователи хотят отправлять контент с помощью Facebook или Twitter.

 Смежные вопросы

  • Нет связанных вопросов^_^