PHP的Mailparse pecl扩展的任何好的文档/教程

时间:2008-12-05 01:25:40

标签: php email attachment pecl

我正在寻找有关如何使用PHP的Mailparse pecl扩展的指导。 PHP网站上的documentation不是很有帮助。

有没有人有这方面的经验并且愿意分享一些指示?

2 个答案:

答案 0 :(得分:3)

您可以联系PECL mailparse package maintainers

答案 1 :(得分:3)

README file that comes with the extension中有补充文档,包括以下OO示例,我发现这些文档很有帮助。

<?php
$file = "/path/to/rfc822/compliant/message";
// parse the message in $file.
// The file MUST remain in existence until you are finished using
// the object, as mailparse does not cache the file in memory.
// You can also use two alternative syntaxes:
// 
// Read the message from a variable:
//   $msg =& new MimeMessage("var", $message);
//
// Read the message from a stream (from fopen).
// The stream MUST be seekable, or things will not work correctly.
// Also, you MUST NOT fclose the stream until you have finished
// using the message object (or any child objects it returns).
//   $msg =& new MimeMessage("stream", $fp);
//
$msg =& new MimeMessage("file", $file);

// Process the message.
display_part_info("message", $msg);

// Little function to display things
function display_part_info($caption, &$msgpart)
{
echo "Message part: $caption\n";

// The data member corresponds to the information
// available from the mailparse_msg_get_part_data function.
// You can access a particular header like this:
//   $subject = $msgpart->data["headers"]["subject"];
var_dump($msgpart->data);

echo "The headers are:\n";
// Display the headers (in raw format) to the browser output.
// You can also use:
//   $msgpart->extract_headers(MAILPARSE_EXTRACT_STREAM, $fp);
//     to write the headers to the supplied stream at it's current
//     position.
//
//   $var = $msgpart->extract_headers(MAILPARSE_EXTRACT_RETURN);
//     to return the headers in a variable.
$msgpart->extract_headers(MAILPARSE_EXTRACT_OUTPUT);

// Display the body if this part is intended to be displayed:
$n = $msgpart->get_child_count();

if ($n == 0) {
    // Return the body as a string (the MAILPARSE_EXTRACT parameter
    // acts just as it does in extract_headers method.
    $body = $msgpart->extract_body(MAILPARSE_EXTRACT_RETURN);
    echo htmlentities($body);

    // This function tells you about any uuencoded attachments
    // that are present in this part.
    $uue = $msgpart->enum_uue();
    if ($uue !== false) {
        var_dump($uue);
        foreach($uue as $index => $data) {
            // $data => array("filename" => "original filename",
            //                "filesize" => "size of extracted file",
            //               );

            printf("UUE[%d] %s (%d bytes)\n",
                $index, $data["filename"],
                $data["filesize"]);

            // Display the extracted part to the output.
            $msgpart->extract_uue($index, MAILPARSE_EXTRACT_OUTPUT);

        }
    }

} else {
    // Recurse and show children of that part
    for ($i = 0; $i < $n; $i++) {
        $part =& $msgpart->get_child($i);
        display_part_info("$caption child $i", $part);
    }
}
}

?>