gpt4 book ai didi

c# - 使用 Redemption 将 MSG 转换为 EML 后,内部地址丢失

转载 作者:行者123 更新时间:2023-11-30 20:41:52 25 4
gpt4 key购买 nike

我目前正在评估 redemption用于将 MSG 文件转换为 EML 文件的库。

RDOSession session = new RDOSession();
RDOMail msg = session.GetMessageFromMsgFile(msgFile);
msg.SaveAs(emlFile, rdoSaveAsType.olRFC822);

到目前为止,与我针对我们的“野生 MSG 文件语料库”测试的其他所有内容相比,Redemption 在这里做得非常好。

然而,内部电子邮件地址存在问题。对于内部电子邮件地址,生成的 EML 文件确实包含 personal仅部分地址,但不是真实电子邮件地址 @符号。

我可以看到 RDOMail的收件人对象包含 SMTPAddress 中的真实电子邮件地址任何情况下的属性(property)。但是 Address 有区别包含外部地址的“真实电子邮件地址”但类似 /O=EXAMPLE ORGANIZAION/OU=SOME GROUP/cn=Recipients/cn=FBarney 的属性用于内部地址。

后者正是在生成的 EML 文件中缺少真实电子邮件地址的地址。

所以我试图覆盖 Address这样的属性:

recipient.Address = recipient.SMTPAddress;

但这对最后生成的 EML 文件没有任何影响。

如何通过兑换将 MSG 转换为 EML 而不会丢失内部地址的真实电子邮件地址

最佳答案

这表明 EX 类型地址无法转换为 SMTP。如果当前 MAPI session 无权访问托管这些 GAL 对象的 Exchange 服务器,通常会发生这种情况。在您的特定情况下,根本没有 MAPI session 。您可以从 Outlook 对象模型将 RDOSession.MAPIOBJECT 属性设置为 Namespace.MAPIOBJECT 以与 Outlook 共享 session ,或者您可以调用 RDOSession.Logon/LogonExchangeMailbox/等

您还可以尝试指定 olRfc822_Redemption 格式以强制 Redemption 使用其内部 MIME 转换器(它跳过很多环节从邮件本身而不是 GAL 获取 SMTP 地址)。默认情况下,如果安装了 Outlook,olRfc822 使用内置的 Outlook 转换器 (IConvertorSession)。

关于c# - 使用 Redemption 将 MSG 转换为 EML 后,内部地址丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31969833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com