如何将剪贴板中的Outlook邮件保存为文件?

4

如果我从收件箱中选择一条Outlook邮件并将其复制到剪贴板,我可以将其粘贴为*.msg文件到桌面上。

现在我想将相同的功能实现到我的应用程序中。

剪贴板对象包含以下元素:

RenPrivateSourceFolder
RenPrivateMessages
RenPrivateItem
FileGroupDescriptor
FileGroupDescriptorW
FileDrop
FileNameW
FileName
FileContents
Object Descriptor
System.String
UnicodeText
Text
FileGroupDescriptor 包含一个 MemoryStream,其中包含文件名(Subject.msg),但我不知道如何从剪贴板数据中创建 Outlook 信息的副本,因为似乎没有任何元素包含信息本身。

有什么建议吗?

2个回答

7

这里有一个例子:C#中的Outlook拖放。该文章使用了拖放,但是应该类似或者相同于使用剪贴板。


1
非常好,谢谢伙计,我在整个互联网上搜索了一个例子但错过了那一页,因为Clipboard不在文章中。 - Jürgen Steinblock

-2

不确定这是否有效,但你需要做类似这样的事情:

if (Clipboard.ContainsText(System.Windows.Forms.TextDataFormat.Text))
{
    IDataObject data = Clipboard.GetDataObject();
    Outlook.Application oApp = new Outlook.Application();
    Outlook.MailItem oMsg = (Outlook.MailItem)data.GetData(DataFormats.Text, true);
}

你不能将字符串转换为Outlook.MailItem。这不是问题的答案。 - 15ee8f99-57ff-4f92-890c-b56153

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接