从C#读取Outlook邮件

时间:2012-02-02 11:42:07

标签: c# outlook-2007

根据此堆栈溢出question或此MSDN How To,上述任务看起来非常简单。

但是我只是对foreach (Outlook.MailItem mail in items)行感到震惊,在那里我得到一个异常,说“无法将。类型'的COM对象强制转换为接口类型'Microsoft.Office .Interop.Outlook.MailItem'...“。

虽然有关此异常的帖子很多few,但没有人可以帮助我克服它。

有人可以帮我解决这个问题,并能够阅读C#中的电子邮件。

由于

1 个答案:

答案 0 :(得分:3)

并非Outlook Explorer中的每个项目都必须是MailItem。例如,公用文件夹包含PostItem个。如果我没记错的话,冲突消息和会议请求也有自己的项目类型。

因此,我会按如下方式设计循环:

foreach (object item in items) {
    var mail = item as MailItem;
    if (mail != null) {
        // do something useful
        ...
    } else {
        // log or show some message box, so that you can debug this case
        ...
    }
}