使用Redemption保存邮件至本地后主题、发件人等信息丢失求助
Redemption SafeMailItem.SaveAs 丢失邮件元数据问题排查
近期使用Redemption将邮件保存至本地路径时出现异常,邮件主题、发件人等元数据全部丢失。此前代码已稳定运行多年,仅近几周出现该问题。相关精简代码如下:
Dim oRMail As Object Dim oExplorer As Explorer oExplorer = m_oUtilities.OutlookApp.ActiveExplorer oRMail = New Redemption.SafeMailItem oRMail.Item = oExplorer.Selection; oRMail.SaveAs(strPath, 3)
环境:Outlook 365 64位版本、Windows 10系统
排查与解决方向
- 升级Redemption版本:近几周Outlook 365的更新可能导致旧版Redemption出现兼容性问题,建议升级到适配64位环境的最新版Redemption,新版本通常会跟进Office 365的API变更。
- 校验Selection对象有效性:代码直接将
oExplorer.Selection赋值给oRMail.Item,但Selection可能包含多个项目或无效对象。需先判断选中数量,再取单个邮件对象:If oExplorer.Selection.Count = 1 Then oRMail.Item = oExplorer.Selection(1) Else ' 处理选中多封或无邮件的异常场景 End If - 修改SaveAs格式参数:参数3对应
olMSG格式,部分Outlook更新后对该格式的元数据存储逻辑有调整。尝试改用参数4(olMSGUnicode),确保元数据完整写入:oRMail.SaveAs(strPath, 4) - 检查Outlook存储配置:确认Outlook是否开启缓存模式,或近期是否修改过OST文件位置。尝试重建OST文件,排除邮件存储损坏导致的元数据读取异常。
- 验证目标路径权限:确保程序运行时有足够权限访问
strPath,权限不足可能导致保存时仅写入部分内容,丢失元数据。
目前已有其他用户反馈类似问题,多集中在Outlook 365更新后Redemption版本不兼容的场景,按照上述步骤调整后大多能解决问题。
内容的提问来源于stack exchange,提问作者Carsten Løvbo Andersen
相关产品推荐
相关产品推荐

