2011-12-21 18 views
2

以前の電子メールプロバイダから、Outlook 2010受信ボックスフォルダReceivedに転送した電子メールがいくつかあります。添付ファイルをOutlookフォルダに保存

私が持っている問題は、元のメールがフォワードとしてではなく添付ファイルとして送信されたことです!そう私は何をしたいのです:

  1. オープン
  2. Receivedフォルダに転送されたメールから添付ファイルを抽出し、Forwardedフォルダにその添付ファイルを保存しますReceivedフォルダ&実行VBAコード内のメール
  3. Receivedフォルダーに転送されたメールを削除します。

私はOutlookのVBAコードを理解していないため、出発点がありません。

ご協力いただきありがとうございます。

答えて

1

添付ファイルを削除してファイルシステムに保存するにはOutlook Attachment Remover Add-Inを使用します。私は主に、私のプロファイルのニーズをサーバー上で削減するために使用します。 大きな利点の1つは、ツールがメールへの元の添付ファイルへのリンクを追加することです。したがって、添付ファイルを開くことはできますが、ファイルシステムから開くことができます。

0

VBA Code to save an attachment (excel file) from an Outlook email that was inside another email as an attachmentの私の以前のコードを使用すると、このOutlook VBAはこのトリックを行う必要があります。

  • のフォルダ受信トレイの下に存在しないを受信転送さを確認してください。
  • コードが

    Sub SaveOlAttachments() 
    
    Dim olFolder As MAPIFolder 
    Dim olFolder2 As MAPIFolder 
    Dim msg As MailItem 
    Dim msg2 As MailItem 
    Dim strFilePath As String 
    Dim strTmpMsg As String 
    
    'path for creating attachment msg file for stripping 
    strFilePath = "C:\temp\" 
    strTmpMsg = "KillMe.msg" 
    
    'My testing done in Outlok using a "temp" folder underneath Inbox 
    Set olFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 
    Set olFolder2 = olFolder.Folders("Forwarded") 
    Set olFolder = olFolder.Folders("Received") 
    
    For Each msg In olFolder.Items 
        If msg.Attachments.Count > 0 Then 
         If Right$(msg.Attachments(1).FileName, 3) = "msg" Then 
          msg.Attachments(1).SaveAsFile strFilePath & strTmpMsg 
          Set msg2 = Application.CreateItemFromTemplate(strFilePath & strTmpMsg) 
         End If 
         msg.Delete 
         msg2.Move olFolder2 
        End If 
    Next 
    End Sub 
    
埋め込まれた電子メールを処理するためのディレクトリC:\temp\が必要です
関連する問題