如何使用VC ++中的Atl / Com项目通过outlook添加ins,将选定的收件箱邮件作为附件发送

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用VC ++中的Atl / Com项目通过outlook添加ins,将选定的收件箱邮件作为附件发送相关的知识,希望对你有一定的参考价值。

以下是我的代码:

_ApplicationPtr pApp(Application);
_MailItemPtr pNewMailItem;
pApp->CreateItem(olMailItem,(IDispatch**)&pNewMailItem);
pNewMailItem->put_BCC(L"mailid1");
pNewMailItem->put_Body(L"Mail Send from Visual C++/ATL");
pNewMailItem->put_To(L"mailid2");    
pNewMailItem->Send();

我可以发送新邮件但无法获取如何附加所选收件箱邮件。

请向我建议一些进一步的进展。

答案

要附加电子邮件,您需要访问与Attachments对象关联的MailItemobject的句柄,并通过调用Attachments::Add附加您的文件。

这是一个最小的工作示例。我没有测试过这个特定的代码,所以考虑一种伪代码:

_ApplicationPtr pApp(Application);
_MailItemPtr pNewMailItem;
pApp->CreateItem(olMailItem,(IDispatch**)&pNewMailItem);

Outlook::AttachmentsPtr pAttachments;
pNewMailItem->get_Attachments(&pAttachments);

// you need to specify your own values for these parameters
ATL::CComVariant filePath(someFilePath);
ATL::CComVariant displayName("some name");
ATL::CComVariant type(Outlook::olByValue);   // to attach a copy
ATL::CComVariant position(1); // add as 1st attachment

Outlook::AttachmentPtr pAttachment;
pAttachments->Add(filePath, displayName, type, position, &pAttachment);

以上是关于如何使用VC ++中的Atl / Com项目通过outlook添加ins,将选定的收件箱邮件作为附件发送的主要内容,如果未能解决你的问题,请参考以下文章