2017-03-09 36 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、Yahooなどの他のメールエンジン)は、このように設計されています:メールが回答された場合

  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

関連する問題