我正在寻找有关如何使用PHP的Mailparse pecl扩展的指导。 PHP网站上的documentation不是很有帮助。
有没有人有这方面的经验并且愿意分享一些指示?
答案 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);
}
}
}
?>