2017-03-09 55 views
0

我看过这个问题发布了几次,但广泛的看后,我还没有找到一个成功的答案。Outlook - 自动转发电子邮件与原始附件

我正在尝试为Outlook创建一个脚本,该脚本可以将包含附件的电子邮件自动转发给发件人,并附带更新后的邮件。这一切都工作,除了我做我不能转发附件。如果我只是使用.Forward,附件不包括在内。如果我尝试使用.Attachment属性,它会中断脚本。

CODE:

Sub ForwardEmail(Item As Outlook.MailItem) 
    With Item.Forward 
     .Attachments.Add Item.Attachment 
     .Subject = ("APPROVED - ") & Item.Subject 
     .Recipients.Add Item.SenderEmailAddress 
     .Body = "Your timesheet has been approved." & vbCrLf & Item.Body 
     .Send 
    End With 
End Sub 
+0

从原始电子邮件附件或将原始电子邮件附加到新的电子邮件? – 0m3r

回答

0

了Microsoft Outlook(和其他电子邮件引擎,如Gmail,雅虎)已经以这种方式设计:

  1. 当邮件回复,接收器不需要与接收方相同的附件已将其放入发件箱(除非已删除)。它也节省了服务器和网络带宽上的存储空间。
  2. 当邮件被转发,因此预计向前通常为至少一个新的用户,因此所有的内容保持原样(即附件不会被删除)

因此,请使用此代码。它遵循上述规则#2,即无论何时转发电子邮件,附件都将自动附加。

Sub ForwardEmail(item As Outlook.MailItem) 
    Dim oMail As MailItem  

    On Error GoTo Release 

    If item.Class = olMail Then 
    Set oMail = item.Forward 
    oMail.Subject = ("APPROVED - ") & Item.Subject 
    oMail.HTMLBody = "Your timesheet has been approved." & vbCrLf & oMail.HTMLBody 
    oMail.Recipients.Add Item.SenderEmailAddress 

    oMail.Save 
    oMail.Send 
    End If 
Release: 
    Set oMail = Nothing 
    Set oExplorer = Nothing 
End Sub 
+0

这个想法是,电子邮件将始终发送回原始发件人,并且必须包含附件。这段代码似乎没有解决这个问题。我需要使用'oMail.Recipients.Add oMail.SenderEmailAddress'这一行。你能帮忙吗? – user3654518

+0

@ user3654518:请使用更新的代码,并尝试了解默认情况下电子邮件转发包含附件。所以,想法是转发电子邮件并更改收件人的主题,正文和列表。 – jainashish