2017-01-19 4 views
4

Я хочу прочитать Outlook .msg письмо с языком PHP, и я не знаю, как его читать с помощью простой функции чтения файла.Как читать файл .msg в php

Я включил Mailparse расширение в моей системе Linux и с его помощью я могу правильно, но не .msg читать .eml файлы.

Не могли бы вы указать мне, чтобы исправить код или библиотеку, которую мне нужно использовать?

Заранее спасибо

ответ

0

Вы можете разобрать с помощью Aspose_Email_Java_for_PHP Скачать here

Some пример

$mapiMessage=new MapiMessage(); 
$outlook_message_file = $mapiMessage->fromFile($dataDir . "Message.msg"); 

Отображать имя отправителя

print "Sender Name : " . $outlook_message_file->getSenderName(); 

Дисплей Тема

print "Subject : " . $outlook_message_file->getSubject(); 

Дисплей тела

print "Body : " . $outlook_message_file->getBody(); 

Ссылка: https://asposeemailjavaphp.codeplex.com/SourceControl/latest#src/aspose/email/ProgrammingOutlook/WorkingWithOutlookMessageFiles/ParseOutlookMessageFile.php

+1

Спасибо вам за ответ любой другой способ без использования Java с PHP – Vinod

+0

для Aspose_Email_Java_for_PHP мне нужно установлен Java на сервере, что я не хочу – Vinod

+0

Как получить вложения из файла ГЗС? Возможно ли использовать библиотеку Aspose? –

-1

Вы можете использовать этот класс я built, который даст вам основную информацию из .MSG файла.

Использование:

Создать экземпляр объекта:

require './msgviewer.php'; 
$msg = new MSGViewer($file); //File being your .MSG file 

возвращаемые данные, призывающих следующие методы ниже:

//From 
$msg->From()['name']; //From: Display name 
$msg->From()['email']; //From: Email Address 

//To -> Returns in Array with Key = Display Name and Value = Email Address 
foreach($msg->To() as $k=>$v) { 

     echo $k . ' ' . $v . ', '; 

} 

//Subject 
$msg->Subject(); //Subject: 

//Body 
$msg->Body(); //Body of Email 

Пример для вызова нескольких файлов:

require './msgviewer.php'; 

$fileArr = ['EmailOne.msg', 'EmailTwo.msg', 'EmailThree.msg']; 

foreach($fileArr as $k=>$v) { 

    checkMSG($v); 
    echo '<br>'; 


} 

function checkMSG($file) { 

    $msg = new MSGViewer($file); 
    echo 'From: ' . $msg->From()['name'] . ' ' . $msg->From()['email'] . '<br>'; 
    echo 'To: '; 
    foreach($msg->To() as $k=>$v) { 

     echo $k . ' ' . $v . ', '; 

    } 
    echo '<br>Subject: ' . $msg->Subject() . '<br>'; 
    echo 'Body: ' . $msg->Body() . '<br>'; 

} 
+0

Спасибо за ваш ценный ответ, что ваш код работает, я могу читать файл, но вы можете сделать еще одну помощь, пожалуйста, дайте мне знать, как я извлекаю из электронной почты и темы и сообщения и т. Д. – Vinod

+0

Здравствуйте, Пожалуйста, дайте мне знать, можем ли мы читать файлы вложений .eml и сохранять их на локальный компьютер в php – Vinod

+0

@Vinod См. Обновление. Если вам нужна помощь в .eml, тогда задайте другой вопрос, показывающий, что вы сделали до сих пор. – Kitson88