2017-03-09 51 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