如何使用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,将选定的收件箱邮件作为附件发送的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MS 数据库(ASP.NET Core MVC)通过表格显示信息?

如何使用MOQ进行单元测试

如何在java中的url中使用当前城市和国家?

如何在现有的 Windows 应用程序中获得 ATL 支持

如何在 C++ 中创建 shell 使用的 IconHandler?

Fortify:如何使用 fortify rest api 获取项目下的问题(漏洞)列表