从outlook中保存邮件正文

时间:2014-03-17 13:38:34

标签: com outlook atl

我是COM / ATL开发的新手。我使用本教程作为主要信息源,为Outlook 2010构建了一个COM加载项。 http://msdn.microsoft.com/en-us/library/ee941475%28v=office.14%29.aspx

当我点击一个按钮(我特意签名)时,我想在文本文件中保存电子邮件的正文(收件箱中的所有邮件)。有人可以给我一个想法,我该怎么做?任何代码片段都会很棒。

提前致谢。

我的功能如下:     STDMETHOD(ButtonClicked)(IDispatch * RibbonControl)     {

    _ApplicationPtr pApp;
    _NameSpacePtr pNamespace;
    pApp->GetNamespace(L"MAPI");
    MAPIFolderPtr InboxFolder = pNamespace->GetDefaultFolder(olFolderInbox);
    _ItemsPtr mails = InboxFolder->Items;
    const long count = mails->GetCount();

    for(long i=1;i<=count;i++)
    {
        //?
    }
    return S_OK;


}

};

2 个答案:

答案 0 :(得分:0)

尝试

MailItemPtr msg = mails.Items(i);
msg.SaveAs("c:\\myfile.txt", olTxt);

请记住,您可以在收件箱中包含MailItem以外的对象(报表项,会议邀请等),因此您可能希望将从mails.Items(I)检索的对象声明为{{1并显式调用IDispatch来检索MailItem。

答案 1 :(得分:0)

平。还是我。我已经修改了程序,以便在收到新邮件时通知我(并且它正在运行)。现在我想保存新邮件的主题/正文。所以我有这个功能 STDMETHODIMP_(ULONG)CAdviseSink :: OnNotify(ULONG cNotif,LPNOTIFICATION lpNotifications),其中消息框在收到新邮件时发出警报。我已经从上面放了代码,但它仍然没有用(outlook崩溃)。