Vba 转发Outlook电子邮件,不添加签名,也不添加原始电子邮件的发件人和收件人
我期待着将Outlook中收到的电子邮件转发到一个新地址,不做任何更改—完全复制,不添加信封信息或签名 电子邮件的正文中始终有一个HTML表,需要以相同的方式保留。我可以将其转发,但它总是在原始电子邮件的“上方”添加一个带有签名的空白电子邮件正文,然后在原始电子邮件的上方添加标准From:和to:以及email属性 有没有办法去掉这个?我试着改变它以生成一个“新”对象,因为新对象在转发之前没有引入HTML正文Vba 转发Outlook电子邮件,不添加签名,也不添加原始电子邮件的发件人和收件人,vba,outlook,Vba,Outlook,我期待着将Outlook中收到的电子邮件转发到一个新地址,不做任何更改—完全复制,不添加信封信息或签名 电子邮件的正文中始终有一个HTML表,需要以相同的方式保留。我可以将其转发,但它总是在原始电子邮件的“上方”添加一个带有签名的空白电子邮件正文,然后在原始电子邮件的上方添加标准From:和to:以及email属性 有没有办法去掉这个?我试着改变它以生成一个“新”对象,因为新对象在转发之前没有引入HTML正文 Sub Send_Forward(ByRef oMail As Object, rep
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
Sub Send_Forward(ByRef oMail作为对象,repBodyStr作为字符串,sendMail作为
布尔值)
将myForward设置为对象
设置myForward=oMail.Forward
myForward.Subject=myForward.Subject
myForward.HTMLBody=repBodyStr&“
”&myForward.HTMLBody
myForward.Recipients.Add“xxx@xxx.net"
myForward.显示
进出口银行:
设置myForward=无
端接头
创建一个新项目(Application.CreateItem
),然后从现有邮件中复制HTMLBody属性并添加收件人
更新:如果需要复制附件(如图像),则必须保存原始邮件中的附件(Attachment.SaveAsFile
),然后将其作为附件添加到新邮件中(MailItem.attachments.add
)。请注意,这不适用于嵌入式OLE对象(在RTF格式的情况下)和嵌入式邮件附件。对于图像,您还需要使用Attachment.PropertyAccessor
复制PR\u ATTACH\u CONTENT\u ID
MAPI属性
另请注意,MailItem.Copy
将不起作用,因为邮件发送状态将被复制(这不是您想要的)
如果使用是一个选项,它允许复制消息而不复制其发送状态。下面的内容应该可以完成这项工作(在我脑子里):
嗨,Dmitry,我使用Application.ActiveExplorer.Selection(1)和其他一些调整。但是,HTML正文中的图片没有保留。HTML中的表格保留,但图片现在是“图片无法显示”。另外,您是否可以确认这是否现在将遍历每条消息?我现在正在测试。非常感谢。呃,现在就在这个问题上打鼹鼠。我不能让它遍历每条消息。我不确定这是否是一个问题,我在哪里有这个子位置的呼吁?或者潜艇本身的问题。如果文件夹中有4个项目,则宏将正确地分别自动重新生成4个项目中的每一个项目,但它只为队列中最顶端的项目(按日期排序时最新的项目)发送新消息“转发”,然后不对其余项目进行处理。谢谢你,Dmitry,我现在正在尝试。当前正在完成更改以确保代码继续到下一个项目,因为我的代码的上一次迭代只在选择光标中的项目上处理(不是期望的行为)
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