尝试转发Outlook电子邮件而不在新电子邮件中添加签名并从原始电子邮件中删除签名

时间:2018-05-29 13:50:53

标签: vba outlook outlook-vba

目前,我正在移动一个与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

1 个答案:

答案 0 :(得分:0)

创建一个新项目(Application.CreateItem),然后只从现有邮件中复制HTMLBody属性并添加收件人。

更新:如果您需要复制附件(例如图片),则必须保存原始邮件(Attachment.SaveAsFile)中的附件,然后将其作为附件添加到新邮件中{{1 }})。请注意,这不适用于嵌入式OLE对象(如果是RTF格式)和嵌入式邮件附件。对于图像,您还需要使用MailItem.Attachments.Add复制PR_ATTACH_CONTENT_ID MAPI属性 另请注意Attachment.PropertyAccessor不起作用,因为将复制消息发送状态(这不是你想要的)。

如果使用Redemption是一个选项,它允许复制邮件而不复制其发送状态。像下面这样的东西应该完成这项工作(在我的头顶):

MailItem.Copy