Фон:
Каждый рабочий день я получаю электронное письмо от известного отправителя. Отправитель помещает вложение в электронное письмо. Я должен обработать то вложение со сценарием Python.
Вопрос:
Каков лучший (автоматический) способ для меня вытащить вложение из Outlook и на мою учетную запись с доступом через оболочку (или локальная файловая система), таким образом, я могу обработать его со сценарием, не имея необходимость вручную открывать файл каждый день и сохранять вложение?
Я предполагаю, что у Вас есть Exchange Server, с которым говорит Outlook. IMAP включен на сервере? Если так, это должно быть довольно тривиально для записи программы, которая ищет сервер IMAP электронное письмо от конкретного отправителя, полученного в течение прошлых 24 часов и синтаксического анализа (что я принимаю, чтобы быть), вложение MIME.
Я исследовал то же самое, и я нашел сценарий.
Скопируйте и вставьте этот код:
(Примечание: В "Константе 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
Пойдите для Отладки в меню и Компиляции...