0

我正在使用 winRT C++ 开发一个 Windows 商店应用程序。我可以通过电子邮件共享文件,但它不能指定接收者的电子邮件地址。贝娄是我共享文件的代码的一部分:-

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

如何在不手动填写电子邮件地址的情况下将附件文件发送到特定的电子邮件收件人。

4

2 回答 2

2

在 Windows 8 中无法做到这一点。您可以共享文件(如上面的代码中所示),也可以将电子邮件发送到明确的地址(使用LaunchUriAsyncURI mailto:),但您不能同时执行这两种操作。

请注意,共享目标应用程序可以要求系统记住最近/频繁的目标,因此如果用户最近发送电子邮件至 bob@foo.com,那么这可能会作为共享选择器中的直接选项出现。内置邮件应用程序使用此功能。

另一个低保真选项是将电子邮件地址复制到剪贴板并要求用户在电子邮件应用程序启动时简单地将其粘贴(或将文件复制到剪贴板并使用该mailto:方法)。

于 2015-01-25T06:27:16.707 回答
0

听起来您想要做的就是创建具有特定收件人的新电子邮件。最简单的方法是使用EmailManager.ShowComposeNewEmailAsync API。如果您的用户想要使用 Facebook 或 Twitter 发送内容,我建议您也保留共享作为选项。

于 2015-07-20T07:27:19.523 回答