我试图保存对RDOMail的一些更改,但我得到以下异常 - Error in IMAPIProp::SaveChanges: MAPI_E_NO_ACCESS\r\nulVersion: 0\r\nComponent: Outlook Data File\r\nulLowLevelError: 0\r\nulContext: 805634561
。
_rdoSession.MAPIOBJECT = app.Session.MAPIOBJECT;
RDOStore sto = _rdoSession.GetRDOObjectFromOutlookObject(_Account[0].DeliveryStore, Missing.Value);
RDOFolder folder = sto.GetDefaultFolder(rdoDefaultFolders.olFolderOutbox);
RDOItems Items = folder.Items;
for (int i = 1; i <= Items.Count; i++)
{
try
{
RDOMail mail = Items.Item(i);
if (mail != null)
{
mail.Account = (RDOAccount)POP3Account;
int tag = mail.GetIDsFromNames("{00020386-0000-0000-C000-000000000046}", "X-Mailer");
mail.Fields[tag] = _xmailerTag;
mail.Save();
mail.Send();
}
} catch {
}
}
您永远不应该触摸“发件箱”文件夹中的邮件 - 从用户单击“发送”按钮的那一刻起,它们就由传输提供商拥有。
如果您需要进行类似的修改,请在Application.ItemSend
事件处理程序中执行此操作 - 这是您在实际发送之前触摸传出消息的最后机会。