【发布时间】:2015-11-18 19:55:39
【问题描述】:
我已尝试使用以下代码从通用 Windows 平台应用程序发送电子邮件。当我使用 EmailMessageBodyKind::PlainText 时效果很好。但是,如下面的代码所示,EmailMessageBodyKind::Html 似乎启动了没有内容的电子邮件客户端。有谁知道还需要设置什么才能使其正常工作 - 文档很稀疏 8 (
using namespace Windows::Storage::Streams;
using namespace Windows::ApplicationModel::Email;
using namespace Windows::Security::Cryptography;
auto bin = CryptographicBuffer::ConvertStringToBinary(
L"<html><body>this <b>is</b> text</body></html>",
BinaryStringEncoding::Utf16LE);
auto memStream = ref new InMemoryRandomAccessStream();
concurrency::create_task(memStream->WriteAsync(bin)).then(
[memStream](unsigned)
{
auto email = ref new EmailMessage();
email->To->Append(ref new EmailRecipient(L"test@gmail.com"));
email->Subject = L"Email Report";
auto randomAccessStreamReference = RandomAccessStreamReference::CreateFromStream(memStream);
email->SetBodyStream(EmailMessageBodyKind::Html, randomAccessStreamReference);
EmailManager::ShowComposeNewEmailAsync(email);
}
);
【问题讨论】:
-
写入流后可能需要重新设置搜索指针。
-
是的 - 我试过了 - 但不幸的是添加了 memStream->Seek(0); (在 EmailManager::ShowComposeNewEmailAsync(email); 当然调用之前)没有效果。
标签: html email windows-runtime c++-cx uwp