Как получить вложение электронной почты Outlook на файловый сервер?

Фон:

Каждый рабочий день я получаю электронное письмо от известного отправителя. Отправитель помещает вложение в электронное письмо. Я должен обработать то вложение со сценарием Python.

Вопрос:

Каков лучший (автоматический) способ для меня вытащить вложение из Outlook и на мою учетную запись с доступом через оболочку (или локальная файловая система), таким образом, я могу обработать его со сценарием, не имея необходимость вручную открывать файл каждый день и сохранять вложение?

1
задан 10.10.2009, 05:14

2 ответа

Я предполагаю, что у Вас есть Exchange Server, с которым говорит Outlook. IMAP включен на сервере? Если так, это должно быть довольно тривиально для записи программы, которая ищет сервер IMAP электронное письмо от конкретного отправителя, полученного в течение прошлых 24 часов и синтаксического анализа (что я принимаю, чтобы быть), вложение MIME.

4
ответ дан 12.12.2019, 07:41
  • 1
    Это имеет смысл, я должен был бы записать, что сценарий на любом языке имеет поддержку такого соединения, powershell походит на хорошую подгонку. Что Вы выбрали бы? – dreftymac 11.10.2009, 02:21
  • 2
    Лично, если бы я знал, что собирался быть использованием сценария Python для парсинга вложения, то я просто добавил бы модуль к нему, который запустится путем открытия папки IMAP, нахождения вложения, загрузки его, затем парсинга его, клиент :) – warren 30.10.2009, 06:54

Усовершенствованный процессор ETL может автоматически ответить на электронные письма, сохранить вложения и обработать электронные письма на основе различных правил

http://www.dbsoftlab.com/etl-tools/advanced-etl-pocessor-news/loading-excel-files-from-emails-questions-from-the-customer.html

2
ответ дан 12.12.2019, 07:41

Я исследовал то же самое, и я нашел сценарий.

  1. Необходимо открыться, перспектива затем нажимают Alt + F11
  2. На левой панели разворачивают Объекты Microsoft Outlook
  3. Дважды щелкните по ThisOutlook Session
  4. Скопируйте и вставьте этот код:

    (Примечание: В "Константе save_path Как Строка = "c:\Temp\"" (заменяют "c:\Temp\" путем к Вашему файловому серверу. Не забудьте заканчивать путь всегда "\"),

    Sub SaveToFolder(MyMail As MailItem)
    Dim strID As String
    Dim objNS As Outlook.NameSpace
    Dim objMail As Outlook.MailItem
    Dim objAtt As Outlook.Attachment
    Dim c As Integer
    Dim save_name As String
    'Place path to sav to on next line. Note that you must include the
    'final backslash
    Const save_path As String = "c:\Temp\"
    
    strID = MyMail.EntryID
    Set objNS = Application.GetNamespace("MAPI")
    Set objMail = objNS.GetItemFromID(strID)
    
    If objMail.Attachments.Count > 0 Then
    For c = 1 To objMail.Attachments.Count
    Set objAtt = objMail.Attachments(c)
    save_name = Left(objAtt.FileName, Len(objAtt.FileName) - 5)
    save_name = save_name & Format(objMail.ReceivedTime, "_mm-dd-yyyy_hhmm")
    save_name = save_name & Right(objAtt.FileName, 5)
    objAtt.SaveAsFile save_path & save_name
    
    Next
    End If
    
    Set objAtt = Nothing
    Set objMail = Nothing
    Set objNS = Nothing
    End Sub
    
  5. Пойдите для Отладки в меню и Компиляции...

  6. Близкий экран VB
  7. Перейдите к правилам и создайте правило: когда электронное письмо получено от человека, Вы упомянули в группе распределения, запустите скрипт (избранный сценарий (Ваш сценарий будет перечислен)). Я добавил бы уведомление с правилом, таким образом, Вы знаете, что правило выполнило также правило переместить электронную почту в определенную папку.
  8. Закройте и вновь откройте Outlook.
6
ответ дан 12.12.2019, 07:41

Теги

Похожие вопросы