将Outlook.Mailitem转换为MIME类型,而不保存或发送邮件

时间:2019-07-16 15:47:42

标签: c# outlook-addin

我有一个Outlook.Mailitem类型的对象,因此我必须将此对象发送到REST服务,因此,必须将Outlook.Mailitem转换为MIME类型或内存流类型,或者以字节为单位,而不会中断邮件格式,因为邮件可能包含附件,图像。 有没有一种方法可以在不发送或保存邮件的情况下将Outlook.Mailitem转换为C#中的MIME类型。

谢谢

2 个答案:

答案 0 :(得分:1)

Outlook带有自己的MIME转换器-IConverterSession。您可以在OutlookSpy中使用它(单击IConverterSession按钮| MAPIToMIMEStm)。由于这是扩展MAPI接口,因此只能从C ++或Delphi访问。

另一种选择是通过MailItem对象属性一次创建一个MIME消息,一个标头和一个MIME部分。

如果使用Redemption(任何语言,我是它的作者)是一种选择,则它公开SafeMailItemSaveAsRDOMailSaveAs方法;支持的一种格式是MIME(olRfc822 = 1024)。

答案 1 :(得分:0)

请参阅IConverterSession::MAPIToMIMEStm,它将MAPI消息转换为MIME流。

可以在MFCMAPI中找到使用MAPIToMIMEStm方法的示例代码。