6

メールでレポートを配布しているクライアント/ベンダーがいくつかあります。これらのファイルの一部は巨大であり、メールボックスのサイズを制御するだけでなく、処理のために電子メールから削除してファイル共有に保存する必要があります。

添付ファイルを自動的にダウンロードして保存するための推奨される方法について、誰でもガイダンスを提供できますか?

私は MS Windows 環境 (クライアント & サーバー コンピューター) を使用しています。電子メールは、Microsoft Exchange 2003 電子メール サーバー上にあります。

ソリューション全体で一貫性を保つために Microsoft テクノロジ (C#) を優先的に使用しますが、C#、VBScript、Perl、Java、購入すべきコンポーネントなど、あらゆる提案を歓迎します。

シナリオ 毎日 bob@whysendmereportsbyemail.com が「YYYY-MM-DD のアクティビティ レポート」という件名のメールを john@myemailaddress.com 宛てに送信します。

各メールには「ActivityReport-YYYY-MM-DD-HH-MI-SS.xls」という名前の添付ファイルがあり、「C:\FilesFromBob\ActivityReport-YYYY-MM-DD-HH-MI-」のファイル システムに保存する必要があります。 SS.xls」

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

4

2 に答える 2

3

Exchange 2003 は、ユーザーのアカウントから電子メール、連絡先などにアクセスするために使用できる WebDav API を提供します。

SOでユーザーの Exchange 受信トレイにアクセスする方法については、既にいくつかの回答があります。私は以前、あなたが概説した状況とほぼ同じ状況でこのアプローチを使用しました.WebDav APIモデルとリクエストとレスポンスの構造を理解すれば、電子メールとその添付ファイルを抽出することはそれほど難しくありません.

Exchange 2003 と対話する方法は他にもありますが (ここで SO について概説)、最も信頼性が高いと思われる WebDav アプローチのみを試しました。

于 2010-01-09T20:24:45.783 に答える
0

私はついにOutlookからのメッセージを保存するコードを書きました。残念ながら、このコードはOutlook内から実行されるため、Outlookを開く必要があります。

実行のスケジュール方法についてはまだ調査していませんが、今では簡単に実行できます

Sub SaveOutlookFileAttachments()


Dim oStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim oFolders As Outlook.Folders
Dim oFolder As Outlook.Folder
Dim destFolder As String
Dim oItems As Outlook.Items
Dim oMsg As Outlook.MailItem
Dim oAttachments As Outlook.Attachments
Dim oAttachment As Outlook.Attachment
Dim oExplorer As Outlook.Explorer


destFolder = "\\NetworkShare\OrderDetailReport\"

On Error Resume Next
Set oStores = Application.Session.Stores

For Each oStore In oStores
    If oStore.DisplayName = "Inbox" Then
        oFolders = oStore.GetSearchFolders
        For Each oFolder In oFolders
        oItems = oFolder.Items
            For Each oMsg In oItems
                oAttachments = oMsg.Attachments
                For Each oAttachment In oAttachments
                    If InStr(1, oAttachment.FileName, "orderdetail_", vbTextCompare) Then
                        'MsgBox ("This File Needs to be Saved: " & oAttachment.FileName)
                        oAttachment.SaveAsFile (destFolder & oAtch.DisplayName)
                    End If
                Next
            Next

        Next

    End If

Next


End Sub
于 2011-03-04T05:43:23.723 に答える