目前,我正在移动一个与Access交互的宏,以便在Outlook中独占运行 - 并更改一些行以自动转发电子邮件。我希望将我收到的相同电子邮件保存到Outlook中,只需将其转发到一个没有更改的新地址 - 一个确切的克隆,没有信封信息,也没有添加签名。这附带其他功能,包括正常工作的自动回复,以及移动到也能正常工作的子文件夹。
电子邮件将始终在正文中包含HTML表格,并且需要以相同方式保留。我可以转发它,但它总是添加一个空白的电子邮件正文,在原始电子邮件的“上方”有一个签名,然后在原始电子邮件上方有标准的From:和To:和电子邮件属性。
有没有办法删除它?我试图改变它以生成一个“新”对象无效,因为新对象在转发之前没有引入HTML正文。
以下是我目前用于子程序的代码:
Sub Send_Forward(ByRef oMail As Object, repBodyStr As String, sendMail As
Boolean)
Dim myForward As Object
Set myForward = oMail.Forward
myForward.Subject = myForward.Subject
myForward.HTMLBody = repBodyStr & "<br>" & myForward.HTMLBody
myForward.Recipients.Add "xxx@xxx.net"
myForward.Display
ExitSub:
Set myForward = Nothing
End Sub
答案 0 :(得分:0)
创建一个新项目(Application.CreateItem
),然后只从现有邮件中复制HTMLBody属性并添加收件人。
更新:如果您需要复制附件(例如图片),则必须保存原始邮件(Attachment.SaveAsFile
)中的附件,然后将其作为附件添加到新邮件中{{1 }})。请注意,这不适用于嵌入式OLE对象(如果是RTF格式)和嵌入式邮件附件。对于图像,您还需要使用MailItem.Attachments.Add
复制PR_ATTACH_CONTENT_ID
MAPI属性
另请注意Attachment.PropertyAccessor
不起作用,因为将复制消息发送状态(这不是你想要的)。
如果使用Redemption是一个选项,它允许复制邮件而不复制其发送状态。像下面这样的东西应该完成这项工作(在我的头顶):
MailItem.Copy