Как переименовать файлы Outlook msg в PHP, прочитав их содержимое

У нас есть огромное количество файлов Outlook .msg, которые нужно заархивировать.

Но перед архивированием его нужно переименовать, читая значение из его содержимого.

Я хочу сделать это на PHP, поскольку я с ним знаком.

Если это невозможно, предложите другие решения.

Редактировать:

Я установил расширение COM DOT NET PHP.

Успешно прогнал следующий код.

define('wdPropertyTitle', 1); 
define('wdPropertySubject', 2); 
define('wdPropertyAuthor', 3); 
define('wdPropertyKeywords', 4); 
define('wdPropertyComments', 5); 
define('wdPropertyTemplate', 6); 
define('wdPropertyLastAuthor', 7); 

$word = new COM("word.application") or die ("Could not initialise MS Word object."); 
$word->Documents->Open(realpath("test.doc")); 
$Author = $word->ActiveDocument->BuiltInDocumentProperties(wdPropertyAuthor); 

echo $Author; 

Мне нужен какой-то похожий код, который мог бы читать файл .msg.

$ word = new COM ("Outlook.application") или die ("Не удалось инициализировать объект MS Word.");


person floCoder    schedule 02.04.2015    source источник


Ответы (1)


Итак, по сути, вам нужно открыть файл MSG и прочитать его? Вы можете использовать либо

  1. Объектная модель Outlook и метод Namespace.OpenSharedItem (нельзя использовать в сервисе).
  2. Redemption и его метод RDOSession .GetMessageFromMsgFile (может использоваться в службе).

Имейте в виду, что тема может содержать недопустимые символы в именах файлов (например, ":").

person Dmitry Streblechenko    schedule 02.04.2015
comment
Неважно, какой язык вы используете, это применимо к PHP так же, как и к C #, VB или Delphi. - person Dmitry Streblechenko; 07.04.2015
comment
Привет, Дмитрий, не могли бы вы привести несколько примеров? - person floCoder; 14.05.2015
comment
С помощью какого API? Где и когда запускается ваш код? - person Dmitry Streblechenko; 14.05.2015
comment
Я не уверен, с чего начать ... Я только что узнал о функциях Mailparse в документации по PHP. Я просто хочу прочитать содержимое файла .msg с помощью PHP. Я не использую API. Является ли это возможным ? - person floCoder; 14.05.2015
comment
Конечно, вы можете проанализировать файл MSG - его формат задокументирован по адресу msdn.microsoft.com/en-us/library/cc463912 (v = exchg.80) .aspx. Это не для слабонервных. - person Dmitry Streblechenko; 14.05.2015
comment
Здесь я добился небольшого улучшения. Установил DLL COM DOT NET в PHP. Выполните поиск объекта word.application. вот код. определить ('wdPropertyTitle', 1); определить ('wdPropertySubject', 2); определить ('вдПропертиаутор', 3); define ('wdPropertyKeywords', 4); определить ('wdPropertyComments', 5); define ('wdPropertyTemplate', 6); определить ('вдПропертиластаутор', 7); $ word = new COM (word.application) или die (не удалось инициализировать объект MS Word.); $ word- ›Документы-› Открыть (realpath (test.doc)); $ Author = $ word- ›ActiveDocument-› BuiltInDocumentProperties (wdPropertyAuthor); echo $ Автор; - person floCoder; 14.05.2015
comment
Но не смог сделать то же самое с объектом Outlook.application. - person floCoder; 14.05.2015