您是否正在尝试创建已发送的消息?创建PostItem项目(在已发送状态下创建)后,将其更改MessageClass为"IPM.Note",保存,将其条目 id 存储在变量中,释放对它的所有引用(使用Marshal.ReleaseComObject),然后MailItem使用 重新打开为对象Namespace.GetItemFromID。请注意,图标仍然是错误的,您需要删除 PR_ICON_INDEX 属性 - 但PropertyAccessor.DeleteProperty不允许您为该属性执行此操作。
如果可以选择使用Redemption,则在已发送状态下创建消息就像
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Inbox = Session.GetDefaultFolder(olFolderSentMail)
set Msg = Inbox.Items.Add
Msg.Sent = true
set CU = Session.CurrentUser
set recip = Msg.Recipients.AddEx("Joe The Recipient", "joe@domain.demo", "SMTP", olTo)
Msg.Subject = "fake sent message"
Msg.Body = "just a test"
Msg.Sender = CU
Msg.SentOnBehalfOf = CU
Msg.SentOn = Now
Msg.ReceivedTime = Now
Msg.Save