【发布时间】:2011-03-01 20:08:43
【问题描述】:
我们目前正在为 C# 软件开发一个插件。此插件提取 PST 文件的内容并将其中的所有项目存储为文本文件(附件除外,附件以其类型存储在与电子邮件相同的文件夹中)。
在我们在带有 Outlook 2K7 的 Windows 7 上对其进行测试之前,它一直可以正常工作。在装有 Outlook 2000 的机器上运行相同的先前作业后,我们注意到有超过 12,000 个文件丢失。这些文件原来是附件(主要是 URL)
我们发现问题在于 Outlook 2K7 会阻止具有特定扩展名的附件。如果您在 Outlook 本身中打开电子邮件,您会在顶部看到一个蓝条,说明“Outlook 已阻止访问以下可能不安全的附件”以及电子邮件中的所有附件。
有没有办法以编程方式获取这些附件而不会被 Outlook 阻止?
我们用来保存附件的代码是:
private void saveAttachment(ref object oEmail, StoreInfo currentStoreInfo, string sEmailID, string sExportPath)
{
int iAttachCount = 0;
object oAttach = null;
oAttach = getNextAttachment(oEmail, ref iAttachCount);
while (oAttach != null)
{
saveAttachment(sEmailID, sExportPath, oAttach);
oAttach = getNextAttachment(oEmail, ref iAttachCount);
}
}
private object getNextAttachment(object oEmail, ref int iAttachCount)
{
object oAttach = null;
try
{
iAttachCount++;
oAttach = GetProperty(oEmail, "Attachments", new object[] { iAttachCount });
}
catch //(Exception ex)
{
// There was no attachment to be gotten
oAttach = null;
}
return oAttach;
}
【问题讨论】:
标签: c# outlook pinvoke outlook-2007