C++ 展望2010 C++;外接程序-HTML电子邮件正文检索

C++ 展望2010 C++;外接程序-HTML电子邮件正文检索,c++,email,com,outlook,add-in,C++,Email,Com,Outlook,Add In,我正在编写一个outlook 2010外接程序,我的外接程序根据每种电子邮件格式(纯文本/HTML)为电子邮件添加页脚,现在我刚刚发现了一个问题,当我启用outlook“以纯文本形式读取电子邮件”功能()时,发生了一个问题,我的外接程序以纯文本形式接收HTML电子邮件,因此,它会添加页脚并相应地保存它们,这是一个问题,因为在保存为纯文本后,outlook会完全丢失电子邮件的实际HTML版本 以下是我的代码(为简洁起见进行了编辑): void CConnect::OnNewItem(IDispat

我正在编写一个outlook 2010外接程序,我的外接程序根据每种电子邮件格式(纯文本/HTML)为电子邮件添加页脚,现在我刚刚发现了一个问题,当我启用outlook“以纯文本形式读取电子邮件”功能()时,发生了一个问题,我的外接程序以纯文本形式接收HTML电子邮件,因此,它会添加页脚并相应地保存它们,这是一个问题,因为在保存为纯文本后,outlook会完全丢失电子邮件的实际HTML版本

以下是我的代码(为简洁起见进行了编辑):

void CConnect::OnNewItem(IDispatch*项)
{
如果(项目)
{
CComQIPtr邮件项目(项目);
OlBodyFormat-bodyFormat;
mailItem->get_BodyFormat(&BodyFormat);
CComBSTR体;
if(bodyFormat==olFormatPlain)
邮件项目->获取正文(&Body);
if(bodyFormat==olFormatHTML)
mailItem->get_HTMLBody(&body);
//在此追加页脚
if(bodyFormat==olFormatPlain)
mailItem->put_Body(新手);
if(bodyFormat==olFormatHTML)
mailItem->put_HTMLBody(新手);
mailItem->Save();
mailItem->Release();
}
}
我还尝试获取电子邮件的HTML正文,不管它们的实际格式是什么,但我得到了纯文本版本的生成HTML版本,因此所有原始CSS和格式都丢失了


我需要的是一种在outlook“以纯文本形式阅读电子邮件”功能启用时能够检索原始HTML版本的方法,如果您有任何帮助,我将不胜感激。

有点过时,但现在刚刚看到这一点

您可能需要降到MAPI级别才能正确执行此操作。比如:

LPMESSAGE MapiMessage;
HRESULT ResultCode  = HrGetOneProp(MapiMessage, PR_HTML, &PropertiesValues);
LPSBinary HtmlBodyProperty = (LPSBinary)&PropertiesValues->Value.bin;

将MAPI支持集成到您的加载项中并不像某些人想象的那样痛苦。一个很好的起点是“。

谢谢,这就是我最后要做的。如果你有兴趣,也许可以将此作为答案。很高兴向其他人展示什么是有用的。
LPMESSAGE MapiMessage;
HRESULT ResultCode  = HrGetOneProp(MapiMessage, PR_HTML, &PropertiesValues);
LPSBinary HtmlBodyProperty = (LPSBinary)&PropertiesValues->Value.bin;