Vba 将传入邮件的附件添加到新的传出邮件

Vba 将传入邮件的附件添加到新的传出邮件,vba,outlook,email-attachments,Vba,Outlook,Email Attachments,我有一个订单,每周通过电子邮件发送几次,其中有一个附件我需要发送出去处理。处理文件的软件要求电子邮件正文中没有签名和文本 我通过一个查找发件人和附件的规则触发脚本。脚本应该抓取一个模板并插入附件。我遇到的问题是插入附件 这是我到目前为止所拥有的。谢谢你的帮助 Sub SendLeadOrder(Item As Outlook.MailItem) Set objMsg = Application.CreateItemFromTemplate("C:\OrderTemplate.oft")

我有一个订单,每周通过电子邮件发送几次,其中有一个附件我需要发送出去处理。处理文件的软件要求电子邮件正文中没有签名和文本

我通过一个查找发件人和附件的规则触发脚本。脚本应该抓取一个模板并插入附件。我遇到的问题是插入附件

这是我到目前为止所拥有的。谢谢你的帮助

Sub SendLeadOrder(Item As Outlook.MailItem)

    Set objMsg = Application.CreateItemFromTemplate("C:\OrderTemplate.oft")

    objMsg.Attachments.Add Item.Attachments
    objMsg.Display
    'objMsg.Send

End Sub

我很确定您需要将附件保存到磁盘,然后将它们重新应用到新邮件中。像这样

Dim Item As Outlook.MailItem
Dim objMsg As Outlook.MailItem
Dim objAtt As Outlook.Attachment
Dim sPath As String

Set Item = ActiveInspector.currentItem
Set objMsg = Application.CreateItemFromTemplate("C:\OrderTemplate.oft")

For Each objAtt In Item.Attachments
    sPath = Environ("TEMP") & "\" & objAtt.FileName
    objAtt.SaveAsFile sPath
    objMsg.Attachments.Add sPath
Next objAtt

objMsg.Display
Dim Item As Outlook.MailItem
Dim objMsg As Outlook.MailItem

Set Item = ActiveInspector.currentItem
Set objMsg = Item.Forward
With objMsg
    .To = "someone@example.com"
    .Subject = "Predifined Subject"
    .Body = vbNullString
    .Display
End With
你确定转发邮件并在必要时清理邮件并不容易吗?像这样

Dim Item As Outlook.MailItem
Dim objMsg As Outlook.MailItem
Dim objAtt As Outlook.Attachment
Dim sPath As String

Set Item = ActiveInspector.currentItem
Set objMsg = Application.CreateItemFromTemplate("C:\OrderTemplate.oft")

For Each objAtt In Item.Attachments
    sPath = Environ("TEMP") & "\" & objAtt.FileName
    objAtt.SaveAsFile sPath
    objMsg.Attachments.Add sPath
Next objAtt

objMsg.Display
Dim Item As Outlook.MailItem
Dim objMsg As Outlook.MailItem

Set Item = ActiveInspector.currentItem
Set objMsg = Item.Forward
With objMsg
    .To = "someone@example.com"
    .Subject = "Predifined Subject"
    .Body = vbNullString
    .Display
End With

我更愿意把它清理干净并向前推进,但这似乎对我不起作用。这就是我如何将Sub-SendNewOrder(项目作为Outlook.MailItem)Dim objMsg设置为Outlook.MailItem set-Item=ActiveInspector.CurrentItem set-objMsg=Item.Forward With objMsg.To=”someone@example.com“.Subject=”prediefined Subject“.Body=vbNullString.Display End With End sub它怎么不起作用?收件人、主题或正文是否没有更改为代码中的内容?我不确定是什么问题,因为它没有显示邮件。通过使用您将body设置为null的想法,我能够使用另一个转发电子邮件示例来完成我所需要的。谢谢你的帮助。