实际发送电子邮件时捕获

时间:2013-12-25 13:01:59

标签: c++ outlook

我正在开发一个捕获一些Outlook事件的应用程序。是否可以在发送电子邮件时检测事件。我不是说当用户点击“发送”按钮但是当电子邮件实际发送时,并且不再在发件箱中。提前谢谢。

更新

我设法在已发送的邮件文件夹中捕获Items.ItemAdd事件。为了检查添加到已发送项目文件夹的最后一封电子邮件是否是我感兴趣的,我试过这个:

STDMETHODIMP CItemsEventListener::HandleItemAdd(CString p_date, CString p_time)
{
    CComPtr<Outlook::_Application> spApplication;
    CComPtr<Outlook::_NameSpace> spSession;
    CComPtr<Outlook::MAPIFolder> spSentMailsFolder;
    CComPtr<Outlook::_Items> pSentboxItems;
    spSentMailsFolder->get_Items(&pSentboxItems);
    CComPtr<Outlook::_MailItem> pSentMail;
    pSentMail = pSentboxItems->GetLast();
    //do staff
    return S_OK;
}`

我收到了编译错误:

error C2660: 'Outlook::_Items::GetLast' : the function doesn't take 0 arguments

我应该将哪个参数传递给函数?

1 个答案:

答案 0 :(得分:1)

MailItem.Send和Application.ItemSend事件在实际发送消息之前发生。

要捕获实际发送邮件的时间,请使用“已发送邮件”文件夹中的Items.ItemAdd事件。