1

我正在尝试从一个 XML 文件中获取信息,该文件作为 php 电子邮件的附件发送。我正在使用 mime_parser.php 来解析电子邮件。这是我正在使用的代码:

$email = "";
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);

//SET UP EMAIL PARSER CLASS
$mime=new mime_parser_class;
$mime->ignore_syntax_errors = 1;
$parameters=array('Data'=>$email,);

//RESULTS GET ADDED TO $decoded VARIABLE
$mime->Decode($parameters, $decoded);

//---------------------- GET EMAIL HEADER INFO -----------------------//

//get the name and email of the sender
$fromName = $decoded[0]['ExtractedAddresses']['from:'][0]['name'];
$fromEmail = $decoded[0]['ExtractedAddresses']['from:'][0]['address'];

//get the name and email of the recipient
$toEmail = $decoded[0]['ExtractedAddresses']['to:'][0]['address'];
$toName = $decoded[0]['ExtractedAddresses']['to:'][0]['name'];

//get the subject
$subject = $decoded[0]['Headers']['subject:'];

$removeChars = array('<','>');

//get the message id
$messageID = str_replace($removeChars,'',$decoded[0]['Headers']['message-id:']);

//get the reply id
$replyToID = str_replace($removeChars,'',$decoded[0]['Headers']['in-reply-to:']);
//---------------------- END GET EMAIL HEADER INFO -----------------------//

//---------------------- FIND THE BODY -----------------------//
//get the message body
if(substr($decoded[0]['Headers']['content-type:'],0,strlen('text/plain')) == 'text/plain' && isset($decoded[0]['Body'])){
    $body = $decoded[0]['Body'];
} elseif(substr($decoded[0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/plain')) == 'text/plain' && isset($decoded[0]['Parts'][0]['Body'])) {
    $body = $decoded[0]['Parts'][0]['Body'];
} elseif(substr($decoded[0]['Parts'][0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/plain')) == 'text/plain' && isset($decoded[0]['Parts'][0]['Parts'][0]['Body'])) {
    $body = $decoded[0]['Parts'][0]['Parts'][0]['Body'];
}
//---------------------- END FIND THE BODY -----------------------//

我找不到有关如何获取附件信息的任何信息。一些例子表明它是标题的一部分,但据我所知不是。如果有人知道附件信息在哪里,我将不胜感激。

4

1 回答 1

0

你可以试试这个 PHP Mime Mail Parser链接

列举的例子:

<?php
require_once('MimeMailParser.class.php');

$path = 'path/to/mail.txt';
$Parser = new MimeMailParser();
$Parser->setPath($path);

$to = $Parser->getHeader('to');
$from = $Parser->getHeader('from');
$subject = $Parser->getHeader('subject');
$text = $Parser->getMessageBody('text');
$html = $Parser->getMessageBody('html');
$attachments = $Parser->getAttachments();    
?>
于 2013-11-02T04:45:29.317 回答