Читайте из .msg [закрытых] файлов

Я создал, еще один, для этой цели:

function dateDiff(date) {
    date = date.split('-');
    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth() + 1;
    var day = today.getDate();
    var yy = parseInt(date[0]);
    var mm = parseInt(date[1]);
    var dd = parseInt(date[2]);
    var years, months, days;
    // months
    months = month - mm;
    if (day < dd) {
        months = months - 1;
    }
    // years
    years = year - yy;
    if (month * 100 + day < mm * 100 + dd) {
        years = years - 1;
        months = months + 12;
    }
    // days
    days = Math.floor((today.getTime() - (new Date(yy + years, mm + months - 1, dd)).getTime()) / (24 * 60 * 60 * 1000));
    //
    return {years: years, months: months, days: days};
}

Не требует сторонних библиотек. Принимает один аргумент - дату в формате YYYY-MM-DD.

https://gist.github.com/lemmon/d27c2d4a783b1cf72d1d1cc243458d56

17
задан huseyint 21 August 2008 в 18:18
поделиться

6 ответов

Обновление: я нашел стороннюю библиотеку COM названной Освобождение Outlook , который хорошо работает для меня в данный момент. При использовании его через COM Interop в.NET не забывайте выпускать каждый COM-объект после того, как Вы сделаны с ним, иначе Ваши сбои приложения случайным образом.

9
ответ дан 30 November 2019 в 11:45
поделиться

Если Вы открываете.MESSAGE файл в текстовом редакторе, я полагаю, что Вы найдете, что информация, которая Вы после, хранится как простой текст в файле. (Это находится на всех сообщениях, которые я проверил, по крайней мере)

, было бы довольно легко написать некоторый код для парсинга поиска файла начала строк "От": или "К": и т.д. и затем извлекая информацию Вам нужно.

, Если Вам нужно тело электронной почты также, которая может быть немного более сложной.

0
ответ дан 30 November 2019 в 11:45
поделиться

Microsoft зарегистрировала это: .MESSAGE Спецификация

Формата файла
6
ответ дан 30 November 2019 в 11:45
поделиться

Это - документ "Структурированного хранилища". Я успешно использовал код Andrew Peace для чтения их в прошлом даже под.NET (использующий C++ / CLI) - это чисто и довольно легко понять. В основном необходимо выяснить, в каких записях Вы нуждаетесь, и запрос для тех - это становится немного волосатым, так как различные версии Outlook и различные типы сообщений приведут к различным записям...

3
ответ дан 30 November 2019 в 11:45
поделиться

В CodeProject есть код для чтения файлов .msg без COM. См. здесь .

10
ответ дан 30 November 2019 в 11:45
поделиться

Вот пример кода VBA с использованием Outlook Redemption, который нашел Хусейнт.

Public Sub ProcessMail()

   Dim Sess As RDOSession
   Dim myMsg As RDOMail
   Dim myString As String

   Set Sess = CreateObject("Redemption.RDOSession")
   Set myMsg = Sess.GetMessageFromMsgFile("C:\TestHarness\kmail.msg")

   myString = myMsg.Body
   myMsg.Body = Replace(myString, "8750", "XXXX")

   myMsg.Save

End Sub
8
ответ дан 30 November 2019 в 11:45
поделиться
Другие вопросы по тегам:

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