Ветеран
Сообщения: 907
Благодарности: 36
|
Профиль
|
Отправить PM
| Цитировать
Привет всем.
Скажите есть надстройка для outlook 2003, которая позволит восстановить данные из файла данных Бата?
Сам спросил сам и ответил. Вот программа для конвертации Aid4Mail
HTML код:
Aid4Mail 1.2 - Easily Convert, Export, Migrate, and Archive your Email
Aid4Mail is a user-friendly Windows tool that helps you migrate your email messages to a different mail client, export them for viewing through Internet Explorer, MS Excel, or a database, convert them to extract or re-insert attachments, and archive them to save space or for compliance with legal requirements. It supports most popular mail client programs and processes all messages without losing any information, including those with file attachments and embedded contents like pictures and background images. Unlike other migration methods, Aid4Mail can also export message status information such as "unread", "read", "replied", and "forwarded". Aid4Mail produces results quickly and with great accuracy.
* System Requirements
* Windows 95/98/2000/2003/NT4/ME/XP
* 32 MB of RAM, 3 MB disk space
* Pentium or AMD processor
Supported Mail Formats:
* Extended MAPI systems:
o Office Outlook (all versions except MS Outlook 97)
o Windows Messaging / Exchange Client, etc.,
* Outlook Personal Storage files (*.pst),
* Outlook MSG files (*.msg),
* Outlook Express (versions 4, 5, and 6),
* EML message files (*.eml),
* MHT Web Archive files (*.mht),
* Mozilla mailbox files (including Netscape and Thunderbird),
* Generic mailbox files (mbox, Berkeley mail format, BSD mail format, Unix mail format),
* Eudora mailbox files (*.toc and *.mbx),
* PocoMail mailbox files (*.idx and *.mbx),
* Opera mailbox files (*.mbs)
* Forte Agent mailbox files (*.idx),
* The Bat! mailbox files (*.msb and *.tbb),
* Pegasus mailbox files (*.pmi, *.pmm, and *.cnm),
* Calypso and Courier archive files,
* PMMail message files (*.msg),
* FoxMail mailbox files (*.box),
* maildir folders (local copies),
* Mailbag Assistant mailbox files (*.mbg),
* E-mail Examiner mailbox files (*.pmx),
* and Aid4Mail ZIP archives (*.zip).
Aid4Mail can convert/export mail to:
* Outlook Personal Storage files (*.pst),
* Outlook MSG files (*.msg) - only if source is Extended MAPI mail,
* EML message files (*.eml),* MHT Web Archive files (*.mht) - linked from an HTML index page or an MS Excel Workbook file,
* MHT files with tab-delimited data file for import into a database,
* Mozilla mailbox files (including Netscape and Thunderbird),
* Generic mailbox files (mbox, Berkeley mail format, BSD mail format, Unix mail format,
* PocoMail mailbox files (*.mbx),
* and Aid4Mail ZIP archives (*.zip).
скачать
Прога хороша, но проблема в Триальной версии. Ограничений много. Если кто знает аналоги пишите.
Вот нарыл скрипт, но он не работает. Если кто может отладить его сделайте, это у меня не получилось
HTML код:
'==================================================================>
' TBExport v.0.01 beta 3
'------------------------------------------------------------------>
' Скрипт для экспорта писем из The Bat! в MS Outlook
'------------------------------------------------------------------>
' Автор:
' Исаев Роман (isaevra@mail.ru)
' http://www.mhalf.newmail.ru/ (Правильный сайт для мужчин!)
' Версия:
' 0.01 beta 3 [16.03.2003]
' Последнюю версию скрипта можно взять здесь:
' Или написав мне письмо по адресу: isaevra@mail.ru.
' Примечание:
' Для использования скрипта необходимо присвоить значения восьми
' переменным расположенным ниже по тексту, между этими маркерами:
' [Параметры|START] и [Параметры|FINISH]
'
' Скрипт предназначен для экспорта почтовых сообщений из программы
' The Bat! в программу MS Outlook. Поддерживается перенос прикрепленных
' файлов (Attachments). Полная синхронизация, тоже, возможна, но требует
' времени на написание и отладку программы.
'
' Вы можете изменять и распространять текст скрипта как пожелаете, при
' условии сохранения ссылки на автора. [FREEWARE]
'
' Пожелания и сообщения об ошибках приветствуются.
'
' Если Вы хотите экспортировать письма, одновременно из множества папок The Bat!,
' сделайте несколько копий скрипта и в каждую копию пропишите параметры
' экспорта каждой из Вам необходимых папок.
'
' Как водиться в среде программистов, в случае взрыва Вашего компьютера,
' автор никакой ответственности не несет. Хмм... Попробовал бы сказал это,
' например, мостостроитель или конструктор самолетов! :)
' 0.01 beta 2 [03.12.2002]:
' - Добавлена возможность выбора папки MS Outlook, в которую будут
' помещаться письма импортированные из The Bat!.
' - Теперь перед экспортом письма, проверяется его наличие в MS Outlook.
' Если такое письмо уже существует, экспорт не производится.
' - Добавлены таймауты показа для всех сообщений. Удобно при использовании
' автоматического запуска скрипта: на экране не остается лишних окон.
' 0.01 beta 3 [16.03.2003]:
' - Добавлена возможность удаления сообщений из The Bat! после их успешного экспорта.
' - Добавлена возможность экспорта только тех сообщений, которые имеют (или не имеют)
' установленный статус: ПРОЧТЕНИЯ, ОТВЕТА или ПАРКОВКИ.
' - Добавлена возможность экспортировать присоединенные файлы (Attachments).
' - Добавлен возможность поиска удаленных сообщений в MS Outlook и при их обнаружении,
' удаление этих сообщений и из The Bat!.
'
'[Параметры|START]==================================================>
'1. Полный путь к файлу: thebat.exe
Const strTheBatFilePath = "C:\Program Files\The Bat!\thebat.exe"
'2. Название ящика The Bat! из которого будет произведен экспорт.
Const strTheBatMailBoxName = "admin@z-tec.ru"
'3. Пароль ящика The Bat! (если ящик не защищен паролем оставляем пустую строку: "").
Const strTheBatFolderPassword = ""
'4. Путь к папке в ящике The Bat!, из которой нужно экспортировать сообщения. Например: "Inbox\Подписка\Мобильные устройства" (По умолчанию: "")
Const strTheBatFolderName = "C:\Documents and Settings\vsinyaev\Application Data\The Bat!\admin@z-tec.ru\Почта Катюшки\Z-tec"
'5. Имя папки в MS Outlook, в которую будут помещены сообщения (данная папка должна входить в папку 'Входящие'). Например: "Inbox\Подписка\Безопасность". (По умолчанию: "")
Const strOutlookFolderName = "Inbox"
'6. Экспорт сообщений в зависимости от их статуса ПРОЧТЕНИЯ. (0-Экспорт всех/1-Экспорт прочитанных/2-Экспорт непрочитанных)
Const lngTheBatReadStatus = 0
'7. Экспорт сообщений в зависимости от их статуса ОТВЕТА. (0-Экспорт всех/1-Экспорт отвеченных/2-Экспорт неотвеченных)
Const lngTheBatReplayStatus = 0
'8. Экспорт сообщений в зависимости от их статуса ПАРКОВКИ. (0-Экспорт всех/1-Экспорт паркованных/2-Экспорт непаркованных)
Const lngTheBatParkStatus = 0
'9. Выполнять экспорт присоединенных файлов (Attachments). (0-Нет/1-Да)
Const fExportAttachments = 1
'10. Удаление из The Bat! всех успешно экспортированных писем (0-Нет/1-Да)
Const fDeleteMessagesAfterExport = 0
'11. Удаление из The Bat! писем обнаруженных в корзине MS Outlook (0-Нет/1-Да)
Const fDeleteMessagesOLDeleted = 1
'12. Количество секунд показа подтверждения на экспорт. (Бесконечно: -1)
Const lngPopupTimeout = 10
'13. Количество секунд показа сообщения о результатах работы. (Бесконечно: -1)
Const lngFinishTimeout = 10
'[Параметры|FINISH]==================================================>
Set wsShell = CreateObject("WScript.Shell")
lngReturn = wsShell.Popup("Вы хотите выполнить экспорт сообщений из The Bat! в MS Outlook?" & vbcrlf & vbcrlf & "Для изменения параметров скрипта необходимо щелкнуть" & vbcrlf & "по нему правой кнопкой мыши и выбрать пункт: 'Изменить'." & vbcrlf & "Далее требуется прописать необходимые значения." & vbcrlf & vbcrlf & "Автоматическое продолжение через: " & lngPopupTimeout & " сек.", lngPopupTimeout, "Подтверждение", 1 + 32)
If lngReturn = 2 Then Wscript.Quit
If strTheBatMailBoxName = "" Then
lngReturn = wsShell.Popup("Не указано название ящика в программе The Bat!, из которого необходимо произвести экспорт писем." & vbcrlf & "Необходимо задать значение переменной: strTheBatMailBoxName" & vbcrlf & vbcrlf & "Для изменения параметров скрипта необходимо щелкнуть" & vbcrlf & "по нему правой кнопкой мыши и выбрать пункт: 'Изменить'.", -1, "Неверное название почтового ящика", 0 + 48)
Wscript.Quit
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FileExists(strTheBatFilePath) Then
lngReturn = wsShell.Popup("Файл " & strTheBatFilePath & " не обнаружен." & vbcrlf & vbcrlf & "Для изменения параметров скрипта необходимо щелкнуть" & vbcrlf & "по нему правой кнопкой мыши и выбрать пункт: 'Изменить'.", -1, "Неверный путь к The Bat!", 0 + 48)
Wscript.Quit
End If
Set fdrTempFolder = FSO.GetSpecialFolder(2)
strMessageFolder = fdrTempFolder.Path & "\" & FSO.GetTempName()
strMessageFolder = Left(strMessageFolder, Len(strMessageFolder)-4)
Set fldMessageFolder = FSO.CreateFolder(strMessageFolder)
strParameters = "/NOLOGO /MINIMIZE /EXIT /EXPORTU=" & Chr(34) & strTheBatMailBoxName & Chr(34) & ";F=" & Chr(34) & strTheBatFolderName & Chr(34) & ";DIR=" & strMessageFolder
If Not strTheBatFolderPassword = "" Then strParameters = strParameters & ";P=" & Chr(34) & strTheBatFolderPassword & Chr(34)
If lngTheBatReadStatus = 1 Then strParameters = strParameters & ";READ"
If lngTheBatReadStatus = 2 Then strParameters = strParameters & ";UNREAD"
If lngTheBatReplayStatus = 1 Then strParameters = strParameters & ";REPLIED"
If lngTheBatReplayStatus = 2 Then strParameters = strParameters & ";UNREPLIED"
If lngTheBatParkStatus = 1 Then strParameters = strParameters & ";PARKED"
If lngTheBatParkStatus = 2 Then strParameters = strParameters & ";UNPARKED"
If fDeleteMessagesAfterExport = 1 Then strParameters = strParameters & ";DELETE"
strCommand = Chr(34) & strTheBatFilePath & Chr(34) & strParameters
lngReturn = wsShell.Run (strCommand, 1, True)
lngFilesCount = fldMessageFolder.Files.Count
If lngFilesCount <> 0 Then
Set appOutlook = CreateObject("Outlook.Application")
Set nsOutlookNameSpace = appOutlook.GetNameSpace("MAPI")
Set olInboxFolder = nsOutlookNameSpace.GetDefaultFolder(6)
Set olFolderDeletedItems = nsOutlookNameSpace.GetDefaultFolder(3)
lngMailCount = 0
If fDeleteMessagesAfterExport = 1 Then lngCountDeletedMessages = lngFilesCount Else lngCountDeletedMessages = 0
strArray = Split(strOutlookFolderName,"\")
For i = 0 to UBound(strArray)
'Поиск необходимой папки в MS Outlook.
strCurrentFolder = strArray(i)
If i = 0 Then
If UCase(strCurrentFolder) <> "INBOX" Then
lngReturn = wsShell.Popup("Задан неверный формат пути к папке MS Outlook, в которую необходимо поместить письма." & vbCrLf & "Все письма будут помещены в папку 'Входящие'.", -1, "Неверный формат пути", 0 + 48)
Exit For
End If
Else
Set olInboxFolder = olInboxFolder.Folders(strCurrentFolder)
End If
Next
For lngCurrentFileIndex = fldMessageFolder.Files.Count To 1 Step -1
'-----[Перебор всех message|START]--------------------->
strCurrentFileName = strMessageFolder & "\" & String(8 - Len(CStr(lngCurrentFileIndex)), "0") & CStr(lngCurrentFileIndex) & ".MSG"
Set filCurrentFile = FSO.GetFile(strCurrentFileName)
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.LoadFromFile filCurrentFile.Path
Set cdoMessage = CreateObject("CDO.Message")
Set cdoDataSource = cdoMessage.DataSource
cdoDataSource.OpenObject objStream, "_Stream"
strMessageID = cdoMessage.Fields("urn:schemas:mailheader:message-id")
strFilter = "[BillingInformation] = '" & strMessageID & "'"
fMessageBeDeleteNow = 0
If fDeleteMessagesOLDeleted = 1 Then
'Поиск и удаление из The Bat! сообщений обнаруженных в корзине MS Outlook.
Set objFindDelMailItem = olFolderDeletedItems.Items.Find(strFilter)
If Not objFindDelMailItem Is Nothing Then
strMessageNumber = CStr(Clng(Left(filCurrentFile.Name, Len(filCurrentFile.Name)-4)) - 1)
strDeletedFolder = strMessageFolder & "\" & FSO.GetTempName()
strDeletedFolder = Left(strDeletedFolder, Len(strDeletedFolder)-4)
Set fldDeletedFolder = FSO.CreateFolder(strDeletedFolder)
strDeletedParameters = "/NOLOGO /MINIMIZE /EXIT /EXPORTU=" & Chr(34) & strTheBatMailBoxName & Chr(34) & ";F=" & Chr(34) & strTheBatFolderName & Chr(34) & ";DIR=" & strDeletedFolder & ";DELETE" & ";START=" & strMessageNumber & ";END=" & strMessageNumber
If Not strTheBatFolderPassword = "" Then strDeletedParameters = strDeletedParameters & ";P=" & Chr(34) & strTheBatFolderPassword & Chr(34)
strDeletedCommand = Chr(34) & strTheBatFilePath & Chr(34) & strDeletedParameters
lngReturn = wsShell.Run (strDeletedCommand, 1, True)
WScript.Sleep 1000
fMessageBeDeleteNow = fldDeletedFolder.Files.Count
If fDeleteMessagesAfterExport = 0 Then lngCountDeletedMessages = lngCountDeletedMessages + fMessageBeDeleteNow
For Each filDeletedFile In fldDeletedFolder.Files
filDeletedFile.Delete
Next
FSO.DeleteFolder(strDeletedFolder)
Set fldDeletedFolder = Nothing
End If
End If
If fMessageBeDeleteNow = 0 Then
Set objFindMailItem = olInboxFolder.Items.Find(strFilter)
If objFindMailItem Is Nothing Then
'Перенос сообщения из The Bat! в MS Outlook (если текущее сообщение в MS Outlook не найдено).
Set objMailItem = appOutlook.CreateItem(olMailItem)
'-----[Перенос свойств в MailItem|START]------>
objMailItem.BillingInformation = strMessageID
objMailItem.To = cdoMessage.To
objMailItem.SentOnBehalfOfName = cdoMessage.From
objMailItem.BCC = cdoMessage.BCC
objMailItem.CC = cdoMessage.CC
objMailItem.Subject = cdoMessage.Subject
objMailItem.AlternateRecipientAllowed = True
objMailItem.HTMLBody = cdoMessage.HTMLBody
cdoMessage.AutoGenerateTextBody = True
If cdoMessage.Attachments.Count > 0 And fExportAttachments = 1 Then
'В письме присутствуют присоединенные файлы (Attachments)
objMailItem.Body = vbCrLf & cdoMessage.TextBody
strAttachmentsFolder = strMessageFolder & "\" & FSO.GetTempName()
strAttachmentsFolder = Left(strAttachmentsFolder, Len(strAttachmentsFolder)-4)
Set fldAttachmentsFolder = FSO.CreateFolder(strAttachmentsFolder)
For lngI = 1 To cdoMessage.Attachments.Count Step 1
'Добавляем присоединенные файлы (Attachments)
strAttachmentFile = cdoMessage.Attachments.Item(lngI).FileName
If strAttachmentFile = "" Then strAttachmentFile = FSO.GetTempName()
strAttachmentFilePath = strAttachmentsFolder & "\" & strAttachmentFile
cdoMessage.Attachments.Item(lngI).SaveToFile (strAttachmentFilePath)
objMailItem.Attachments.Add strAttachmentFilePath, 1, lngI, strAttachmentFile
Next
For Each filAttachmentFile In fldAttachmentsFolder.Files
filAttachmentFile.Delete
Next
FSO.DeleteFolder(strAttachmentsFolder)
Set fldAttachmentsFolder = Nothing
Else
objMailItem.Body = cdoMessage.TextBody
End If
'-----[Перенос свойств в MailItem|FINISH]----->
objMailItem.Save
objMailItem.Move(olInboxFolder)
lngMailCount = lngMailCount + 1
End If
End If
filCurrentFile.Delete
'-----[Перебор всех message|FINISH]-------------------->
Next
If lngMailCount > 0 Then
lngReturn = wsShell.Popup("В MS Outlook успешно экспортировано: " & lngMailCount & " писем." & vbcrlf & "Из The Bat! удалено: " & lngCountDeletedMessages & " писем." & vbcrlf & vbcrlf & "Желаю приятных новостей." & vbcrlf & vbcrlf & "Автоматическое продолжение через: " & lngFinishTimeout & " сек.", lngFinishTimeout, "Экспорт завершен", 0 + 64)
Else
lngReturn = wsShell.Popup("Новых писем для экспорта в MS Outlook не обнаружено." & vbcrlf & "Из The Bat! удалено: " & lngCountDeletedMessages & " писем." & vbcrlf & vbcrlf & "Автоматическое продолжение через: " & lngFinishTimeout & " сек.", lngFinishTimeout, "Экспорт завершен", 0 + 64)
End If
Else
lngReturn = wsShell.Popup("Писем для экспорта в MS Outlook не обнаружено." & vbcrlf & "Из The Bat! удалено: " & lngCountDeletedMessages & " писем." & vbcrlf & vbcrlf & "Автоматическое продолжение через: " & lngFinishTimeout & " сек.", lngFinishTimeout, "Экспорт завершен", 0 + 48)
End if
WScript.Sleep 1000
FSO.DeleteFolder(strMessageFolder)
Wscript.Quit
|