Exchange電子メールアカウントが作成されました。このアカウントを介して、3つの異なるExcel添付ファイルが付いた電子メールを毎日受信します。
各Excel添付ファイルは、3つの異なるフォルダーのいずれかに保存する必要があります。
これを自動的に行うようにExchangeServerを構成できますか、またはアカウントで新しい電子メールを監視するスクリプトをプログラムする必要がありますか?
Exchange2007サーバーだと思います。
私は現在、この目的のためにpythonスクリプトを使用しています。これは、mailbow trought POP3にログインし、添付ファイルをダウンロードして電子メールをバックアップします。少しの変更で、ニーズに非常によく合う可能性があります。必要に応じてpy2exeでコンパイルできます。 コードはこちら 。
PS:このコードは元々Suresh Kesmarによって書かれました(彼のすべての功績);)
Outlookは自分自身からあなたを保護するのが好きなので、スクリプトを使用してこれを実行する必要があるのではないかと思います。以下の手順は ここ からのものです。 Excelスプレッドシートに適用するように少し変更しました。 Excel 2007からのものである場合は、スクリプトのファイル拡張子に「xlsx」を使用する必要があることに注意してください。
[vb]Sub SaveAttachmentsToDisk(Item As Outlook.MailItem) Dim olkFolder As Outlook.MAPIFolder, _ olkAttachment As Outlook.Attachment, _ objFSO As Object, _ strRootFolderPath As String, _ strFilename As String, _ intCount As Integer ‘Change the following path to match your environment strRootFolderPath = "z:\www\departments\webreports\" Set objFSO = CreateObject("Scripting.FileSystemObject") Set olkFolder = Application.ActiveExplorer.CurrentFolder If Item.Attachments.Count > 0 Then For Each olkAttachment In Item.Attachments If objFSO.GetExtensionName(LCase(olkAttachment.FileName))
= "xls" Then
strFilename = olkAttachment.FileName intCount = 0 Do While True If objFSO.FileExists(strRootFolderPath &
strFilename)次に
intCount = intCount + 1 objFSO.deletefile (strRootFolderPath & strFilename) Else Exit Do End If Loop olkAttachment.SaveAsFile strRootFolderPath & strFilename End If Next End If Set objFSO = Nothing Set olkAttachment = Nothing Set olkFolder = Nothing End Sub[/vb]
スクリプトを適切に処理するには、適切なセキュリティレベルが設定されていることを確認する必要があります。 Outlookで、[ツール]> [マクロ]> [セキュリティ]に移動します。マクロのセキュリティチェックなしを選択しました。これは、環境の制限が緩すぎる可能性があります。その場合は、次に高い設定を試してください。
変更を反映するために、新しいOutlookルールを作成します([ツール]> [ルールとアラート])。私のルールは、特定の電子メールアドレスから新しいメッセージを探し、添付ファイル(移動するWebファイル)を持ち、メッセージを特定のフォルダーに移動し(メッセージ/添付ファイルのバックアップを作成できるようにするため)、上記のモジュール/スクリプトを使用して、Webファイルを適切なSamba共有に移動します。ルールの説明は次のようになります。
Apply this rule after the message arrives from [email protected] and which has an attachment and on this machine only move it to the WEBBACKUP folder and run Project1.SaveAttachmentsToDisk
objFSO.deletefile(strRootFolderPath&strFilename)
と
strFilename = "Copy("&intCount& ")of"&olkAttachment.FileName