Какой лучший способ программно обрабатывать новые сообщения электронной почты и вложения магазина - PullRequest
6 голосов
/ 09 января 2010

У меня есть несколько клиентов / поставщиков, которые рассылают мне отчеты по электронной почте. Некоторые из этих файлов огромны, и их необходимо удалить из электронной почты и сохранить в общей папке для обработки, а также для контроля размера почтового ящика.

Может ли кто-нибудь предоставить рекомендации относительно рекомендуемого метода автоматической загрузки и сохранения вложений.

Я нахожусь в среде 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"

Заранее благодарим за любую помощь.

Ответы [ 2 ]

3 голосов
/ 09 января 2010

Exchange 2003 предоставляет API WebDav, который вы можете использовать для доступа к электронной почте, контактам и т. Д. Из учетной записи пользователя.

Существует несколько ответов о доступе к входящему почтовому ящику пользователя Exchange в SOуже.Ранее я использовал этот подход практически для описанной вами ситуации, и, как только вы разработаете модель WebDav API и структуру запросов и ответов, не составит труда извлечь электронные письма и их вложения.

Есть и другие способы взаимодействия с Exchange 2003 (, обозначенные здесь как SO * ), но я попробовал только подход WebDav, потому что он показался наиболее надежным.

0 голосов
/ 04 марта 2011

Я наконец-то написал код для хранения сообщений из 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
...