powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Outlook. Пакетное Сохранение вложений писем в формате txt
10 сообщений из 10, страница 1 из 1
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38774558
Ckrotky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, суть в следующем. На почту приходят письма с вложениями. Вложения - тоже письма, но только в текстовом формате.
Как настроить правило или создать макрос, чтобы, например, все полученные письма, которые получены от определенного пользователя и содержат вложения - сохраняло вложения в определенную папку в формате txt.

Заранее Спасибо!
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38774829
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй это
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Sub GetPassAndSave()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim objItem As Object
Dim ns As NameSpace
Dim InboxItems As MAPIFolder
Dim Item As MailItem
Dim Atmt As Attachment
Dim x As Integer
On Error Resume Next
Set xlApp = CreateObject("Excel.application")
xlApp.Visible = False
Set strSaveAsFilename = xlApp.FileDialog(msoFileDialogFolderPicker)
With strSaveAsFilename
       .Show
       k = .SelectedItems(1)
End With
If IsEmpty(k) Then Exit Sub
k = IIf(Right(k, 1) = "\", k, k & "\")
xlApp.Quit
Set xlApp = Nothing
Set ns = GetNamespace("MAPI")
Set myOlExp = Application.ActiveExplorer
Set myOlSel = myOlExp.Selection
    For x = 1 To myOlSel.Count
        For Each Atmt In myOlSel.Item(x).Attachments
            Atmt.SaveAsFile k & Atmt.FileName
        Next Atmt
    Next x
End Sub
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38778635
Ckrotky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
An12, Большое спасибо! все работает на ура!
Но, увы сейчас немного изменилось условие ТЗ. :(

Теперь почтовые регистрационные формы приходят конкретно мне на почтовый ящик. (мне менеджер не пересылает вложением, а сразу я их буду получать) Письма без каких либо вложений/форматирования и т.п. - обычное письмо - обычный текст.

Можно ли как то настроить правило/запрос, чтобы письма от определенного получателя автоматичеки сохранялись по определенному пути (например, "D:\Mails\"). т.е. чтобы при получении писем подпадающих под правило, эти письма автоматически сохранялись в текстовых документах?

Заранее большое спасибо!
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38778732
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не проще сделать папку в outlook и через правила перекидвать эти письма туда? и никаких макросов.
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38778795
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создай правило на адресата/тему и укажи выполнение скрипта

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub GetPassAndSave1(Item As Outlook.MailItem)
k = "D:\Mails"
dateOfMailItem = Format(Item.CreationTime, "yyyymmddhhmmss;@")
oBody = Item.Body
ChDir k
sExpFileName = dateOfMailItem & ".txt"
f = FreeFile
Open sExpFileName For Output Access Write As #f
Print #f, oBody
Close #f
End Sub
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38780209
Ckrotky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
An12,
Сделал все как ты описал, но ничего не поисходит. ошибки никакой не выдает, но письмо не сохраняет. :(
тут http://msdn.microsoft.com/en-us/library/office/ff868727(v=office.15).aspx
подпилил под себя

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub SaveAsTXT(Item As Outlook.MailItem)
 Dim myItem As Outlook.Inspector
 Dim objItem As Object

 Set myItem = Application.ActiveInspector
 If Not TypeName(myItem) = "Nothing" Then
 Set objItem = myItem.CurrentItem
 strname = objItem.Subject & "-" & Format(Now, "yyyy-mm-dd hh.nn.ss")
 'Prompt the user for confirmation
 Dim strPrompt As String
 'strPrompt = "Are you sure you want to save the item? " & _
 '"If a file with the same name already exists, " & _
 '"it will be overwritten with this copy of the file."
 'If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
 objItem.SaveAs "D:\Mails\" & strname & ".txt", olTXT
 'End If
 Else
 MsgBox "There is no current active inspector."
 End If
End Sub




подпилил под себя все ок, сохраняет как надо, но единственное, опасаюсь, что если одновременно придут два письма (дата и время вплоть до секунды совпадут), то одно письмо затрет другое.
+ когда одновременно приходит несколько писем - через рас выскакивает сообщение о сбое правила и правило отключается - письма начинают не в указанную папку и схраняться на жесткий, а просто в папку входящие без сохраненияна Диске.ю
Сообственно 2 вопроса,
1. как вывести в названии файла еще и милисекуды?
2. В чем может быть причина сбоя правила и как ее устранить.

Заранее большущее спасибище! ;)
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38781473
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. "yyyymmddhhmmss,000;@" - но не прокатит, т.к. офис (outlook в момент приема письма) должен округлять миллисекунды до целой секунды. хотя можешь попробовать. на моей практике еще ни разу не приходили письма в одно время вплоть до секунды. для добавления полей автор, тема и т.д. после указания письма и проставления точки VBE предлагает доступные свойства объекта. Ответ там.

2. теряется фокус на письмо. в моем макросе фокус задается через первую строку
Sub GetPassAndSave1( Item As Outlook.MailItem).
в новом
Set myItem = Application.ActiveInspector
Set objItem = myItem.CurrentItem

поменяй объекты, должно помочь.
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #38781649
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
+
в макросе заметил, что ключ задаешь временем срабатывания правила. используй
.CreationTime
Очень сомневаюсь, что отправитель генерирует письма со скоростью 1 миллисекунда.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Outlook. Пакетное Сохранение вложений писем в формате txt
    #39197835
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объявляешь глобальную переменную.
В теле макроса прибавляешь к ней единичку.
Используешь переменную в формировании названия файла, при этом не убирая дату. При одновременном получении 15 писем с одинаковыми файлами у меня код дал нормальных 15 файлов
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Option Explicit
Public AAAA As Variant
Sub VLOZENIYA_OPTIMIST_01(myItem As Outlook.MailItem)
AAAA = AAAA + 1
'сохранение файлов из вложений в папку для последующей обработки
'к имени файла добавляем время дату и время получения
'надо бы еще адрес почты в разобранном виде
Dim att_count As Integer
For att_count = 1 To myItem.Attachments.Count
'папку потом сменим
myItem.Attachments.Item(att_count).SaveAsFile ("C:\1111\" & Format(Now, "yyyy_mm_dd_hh_mm_ss") & "_No" & AAAA & "_" & myItem.Attachments.Item(att_count).FileName)
Next
End Sub
...
Рейтинг: 0 / 0
Outlook. Пакетное Сохранение вложений писем в формате txt
    #39197841
Фотография Dan-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По вышеописанному макросу:
1. Настроил на почте яндекса папку ОБРАБОТКА, чтобы получать в нее все файлы с вложенными файлами содержащими ".xls"/ В итоге туда сыплются все письма, где есть Экселевские файлы.
2. Разрешил в настройках яндекс-почты забирать письма через POP3 только с папки ОБРАБОТКА
3. Настроил в Outlook правило, чтобы по факту прихода письма с вложением и с такого-то адреса (моего) - чтобы запускался сценарий. Смотри вышеприведенный макрос.

Сценарий - распаковывает все файлы в одну папку и нумерует их настолько уникальным номером, что и не подкопаешься....

На просторах инета бытует версия что могут подобные макросы пропускать обработку части писем при работе по POP3 и больших объемах одновременно скачиваемых Аутлуком писем... Типа при 16 письмах уже будут проблемы...

Откровенно говоря 15 писем я проверил только что... Полет нормальный


Данный макрос я привязал к правилу
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Outlook. Пакетное Сохранение вложений писем в формате txt
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]