exchange-server - 如何正确设置交换地址类型的发件人信息
问题描述
在某些 msg 文件中,发件人信息被意外删除。我想在 msg 文件中恢复发件人信息。我正在使用 Redemption 库来恢复信息。
信息正在正确恢复。我已经使用 MFCMAPI 实用程序验证了信息。单击以使用 Mapi 查看发件人信息
但是,当我用 Outlook 打开固定消息时,发件人的交换规范名称会在 UI 中与发件人的显示名称一起显示。例如,“John</O=Exchange/OU=ExchangeAdmin....>”在好消息中只显示“John”。 点击查看UI显示差异
我正在使用以下代码来恢复发件人信息。
var PR_SENDER_ADDRTYPE_W = 0x0C1E001F;
var PR_SENDER_NAME_W = 0x0C1A001F;
var PR_SENDER_EMAIL_ADDRESS_W = 0x0C1F001F;
var PR_SENDER_SMTP_ADDRESS = 0x5D01001F;
Redemption.RDOSession oRdoSession = null;
RDOMail oRdoMail = null;
SafeMailItem sfItem = null;
oRdoSession = Redemption.RedemptionLoader.new_RDOSession(); // session = New Redemption.RDOSession
oRdoMail = oRdoSession.GetMessageFromMsgFile(sFilePath);
sfItem = Redemption.RedemptionLoader.new_SafeMailItem(); // CreateObject("redemption.safemailitem")
sfItem.Item = oRdoMail;
bool f_Changed = false;
var f_EntryID = oRdoSession.CreateOneOffEntryID(p_FromDisplayName, p_FromAddressType, p_FromEmailAddress, Type.Missing, Type.Missing);
var ID = oRdoSession.GetAddressEntryFromID(f_EntryID);
oRdoMail.Sender = ID;
oRdoMail.SentOnBehalfOf = ID;
//SetFieldValue is nothing but sfItem.Fields[PR_SENDER_ADDRTYPE_W] = p_FromAddressType
SetFieldValue(sfItem, PR_SENDER_ADDRTYPE_W, "PR_SENDER_ADDRTYPE_W", p_FromAddressType, ref f_Changed);
SetFieldValue(sfItem, PR_SENDER_NAME_W, "PR_SENDER_NAME_W", p_FromDisplayName, ref f_Changed);
SetFieldValue(sfItem, PR_SENDER_SMTP_ADDRESS, "PR_SENDER_SMTP_ADDRESS", p_FromSmtpAddress, ref f_Changed);
SetFieldValue(sfItem, PR_SENDER_EMAIL_ADDRESS_W, "PR_SENDER_EMAIL_ADDRESS_W", p_FromEmailAddress, ref f_Changed);
oRdoMail.Save();
你能告诉我我错过了什么吗?
有关已发送信息的更多属性,请查看屏幕截图。点击查看截图
解决方案
Outlook 实际显示PR_SENT_REPRESENTING_xyz
属性。
绝对没有理由创建的实例SafeMailItem
- 只需使用RDOMail
返回的对象RDOSession.GetMessageFromMsgFile
p_FromAddressType
和p_FromEmailAddress
变量的值是什么?如果您知道 SMTP 地址,只需将其传递给CreateOneOffEntryID
:
var f_EntryID = oRdoSession.CreateOneOffEntryID(p_FromDisplayName, "SMTP", p_FromSmtpAddress, Type.Missing, Type.Missing);
推荐阅读
- api - 无法解析 HTTP 请求
- javascript - 无法读取 null React 的属性“样式”
- django - Django 嵌套模板
- javascript - Laravel 5.6 如何将 URL 作为 URL 参数传递?
- c++builder - 窗口屏幕应用程序行为,如屏幕键盘
- google-analytics - 谷歌分析 - 产品列表视图 - 谷歌如何计算指标?
- servicenow - ServiceNow 个人开发者实例启用了 SecurityOperations 插件?
- android - firebase 中创建帐户的结果为 true,但未在 firebase 控制台中添加
- php - 如何在不使用依赖注入器的情况下注册伏特引擎?
- javascript - ChartsJS 获取工具提示的数据/数据集标签的值