Создайте новый элемент (Application.CreateItem
), затем просто скопируйте свойство HTMLBody из существующего сообщения и добавьте получателей.
ОБНОВЛЕНИЕ: если вам нужно скопировать вложения (например, изображения), вам нужно будет сохранить вложения из исходного сообщения (Attachment.SaveAsFile
), а затем добавить их как вложения в новое сообщение (MailItem.Attachments.Add
).Обратите внимание, что это не будет работать со встроенными объектами OLE (в случае формата RTF) и вложенными вложениями сообщений.Для изображений вам также необходимо скопировать свойство PR_ATTACH_CONTENT_ID
MAPI, используя Attachment.PropertyAccessor
.
Также обратите внимание, что MailItem.Copy
не будет работать, так как состояние отправленного сообщения будет скопировано (что не то, что вы хотите).
Если используется Погашение , это опция, которая позволяет сделать копию сообщения без копирования его отправленного состояния.Что-то вроде следующего должно сделать работу (с макушки головы):
Set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set originalMsg = Session.GetRDOObjectFromOutlookObject(Application.ActiveExplorer.Selection(1))
set newMsg = Session.GetDefaultFolder(olFolderDrafts).Items.Add
'copy the message and clear out recipients
originalMsg.CopyTo(newMsg)
newMsg.Recipients.Clear
newMsg.Recipients.Add "xxx@xxx.net"
newMsg.Save
'now reopen the message in OOM and diplay it. Or you can use newMsg.Display
set myForward = Application.Session.GetItemFromID(newMsg.EntryID)
myForward.Display