web-dev-qa-db-ja.com

Outlookの添付ファイルを自動的に保存する

Outlook 2010からサーバーに電子メールの添付ファイルを自動的にプルできるWindowsベースの方法はありますか?サーバー上のフォルダーに手動で保存した添付ファイルが付いた電子メールを毎日受け取ります。このプロセスを自動化する必要があります。

私が試したこと-

outlookでルールを作成し、それにスクリプトを作成しようとしました。しかし、それは私のPC上の私のローカルフォルダに添付ファイルを保存するだけです。 Outlookを開いたときにのみ保存されます。 Outlookがサーバーで開かれていない場合でも、サーバーに保存して保存します。Outlookに保存したスクリプトは次のとおりです

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
saveFolder = "D:\newfolder" 
  For Each objAtt In itm.Attachments 
    If InStr(objAtt.DisplayName, ".xls") Then 
    objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName 
    End If 
  Set objAtt = Nothing 
  Next 
End Sub 
4
user423803

VBAの実行は、クライアント側のみの操作です。つまり、PCがオンになっていて、Outlookがスクリプトを有効にして実行されている必要があります。 Outlookを実行していない場合、必要なことはできません。おそらくサーバー側のソリューションがありますが、それはserverfault.comにとっての問題です

特定の電子メールの添付ファイルを処理する場合は、これを使用します。 Outlook 2013では、私にとっては完全に機能します。

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "c:\temp"
     For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
          Set objAtt = Nothing
     Next
End Sub

ルールの最後の部分は、スクリプトの実行です。

enter image description here

Outlook VBAに精通していない他のユーザーは、開発者リボンを表示する必要があります。

enter image description here

上記のコードを貼り付け、VBAを保存して、ルールで参照します。

enter image description here

2
Sun

OutlookアカウントがPOP3またはIMAPである場合、受信メッセージ以外にイベントをトリガーする方法がないため、クライアントが閉じている間はマクロまたはルールを実行できません。

ExchangeでOutlookを実行している場合は、受信トレイに配信される前に添付ファイルを保存するためのアカウントのルールをサーバーに作成する必要があります。ルールにはUNCアドレス(\\server\folder、ローカルにマップされたドライブアドレス(D:\folder)サーバーが認識しません。

セキュリティ上の理由から、ネットワーク管理者がサーバー側のルールを無効にしている場合があることに注意してください。あなたはこれを行うことができることを確認するために彼らに確認する必要があります。

追加情報: クライアント側とサーバー側のルール

1
CharlieRB