search for in the  
<mailmailparse_determine_best_xfer_encoding>
Last updated: Thu, 19 May 2005

LXIII. mailparse Functions

Introduction

Warning

This extension is EXPERIMENTAL. The behaviour of this extension -- including the names of its functions and anything else documented about this extension -- may change without notice in a future release of PHP. Use this extension at your own risk.

This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 4.2.0.

Installation

This PECL extension is not bundled with PHP. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: http://pecl.php.net/package/mailparse.

In order to use these functions you must compile PHP with mailparse support by using the --enable-mailparse configure option.

Windows users will enable php_mailparse.dll inside of php.ini in order to use these functions. You may download this PECL extension DLL from the PHP Downloads page or at http://snaps.php.net/.

Table of Contents
mailparse_determine_best_xfer_encoding --  Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able
mailparse_msg_create -- Returns a handle that can be used to parse a message
mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding
mailparse_msg_extract_part --  Extracts/decodes a message section
mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()
mailparse_msg_get_part_data -- Returns an associative array of info about the message
mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage
mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message
mailparse_msg_parse_file -- Parse file and return a resource representing the structure
mailparse_msg_parse -- Incrementally parse data into buffer
mailparse_rfc822_parse_addresses --  Parse addresses and returns a hash containing that data
mailparse_stream_encode --  Streams data from source file pointer, apply encoding and write to destfp
mailparse_uudecode_all --  Scans the data from fp and extract each embedded uuencoded file


User Contributed Notes
mailparse Functions
iwarner at triangle-solutions dot com
21-May-2004 11:31
Also dont forget to LOAD mbstring before you load mailparse

example in the php.ini place in this order:

extension=php_mbstring.dll
extension=php_mailparse.dll

Or you will get an error.

Ian
boris at gamate dot com
12-Sep-2003 09:11
Example how to handle mail content from a variable:

<?php

$buffer
= [...] // Mail Content from pipe or whatever

$mail = mailparse_msg_create();
mailparse_msg_parse($mail,$buffer);
$struct = mailparse_msg_get_structure($mail);

foreach(
$struct as $st) {
  
$section = mailparse_msg_get_part($mail, $st);
  
$info = mailparse_msg_get_part_data($section);
  
  
print_r($info);
}

?>
toffe at dev dot null dot se
10-May-2003 01:50
To install mailparse on later versions of php, 4.3.1 in my case, you have to compile it with --enable-mbstring then do:

# pear install mailparse

This should download/compile/install the mailparse module...
To use it, either put extension=mailparse.so in your php.ini or use dl("mailparse.so"); in each script you need the mailparse capabilities in.

/C A
wberrier at yahoo dot com
09-Jul-2002 03:45
[Authors note:
The tarball for 4.2.x can be found here:
http://thebrainroom.com/opensource/php/mailparse.php
and contains a script called try.php that demonstrates the usage of these functions.
]

I've pasted the contents of the file below:

<?php
/*
 * This is a simple email viewer.
 * make sure that $filename points to a file containing an email message and
 * load this page in your browser.
 * You will be able to choose a part to view.
 * */

$filename = "uumsg";

/* parse the message and return a mime message resource */
$mime = mailparse_msg_parse_file($filename);
/* return an array of message parts - this contsists of the names of the parts
 * only */
$struct = mailparse_msg_get_structure($mime);

echo
"<table>\n";
/* print a choice of sections */
foreach($struct as $st) {
       echo
"<tr>\n";
       echo
"<td><a href=\"$PHP_SELF?showpart=$st\">$st</a></td>\n";
      
/* get a handle on the message resource for a subsection */
      
$section = mailparse_msg_get_part($mime, $st);
      
/* get content-type, encoding and header information for that section */
      
$info = mailparse_msg_get_part_data($section);
       echo
"\n";
       echo
"<td>" . $info["content-type"] . "</td>\n";
       echo
"<td>" . $info["content-disposition"] . "</td>\n";
       echo
"<td>" . $info["disposition-filename"] . "</td>\n";
       echo
"<td>" . $info["charset"] . "</td>\n";
       echo
"</tr>";
}
echo
"</table>";

/* if we were called to display a part, do so now */
if ($showpart)  {
      
/* get a handle on the message resource for the desired part */
      
$sec = mailparse_msg_get_part($mime, $showpart);

       echo
"<table border=1><tr><th>Section $showpart</th></tr><tr><td>";
      
ob_start();
      
/* extract the part from the message file and dump it to the output buff
er
         * */
      
mailparse_msg_extract_part_file($sec, $filename);
      
$contents = ob_get_contents();
      
ob_end_clean();
      
/* quote the message for safe display in a browser */
      
echo nl2br(htmlentities($contents)) . "</td></tr></table>";;
}
?>

<mailmailparse_determine_best_xfer_encoding>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 18:35:34 2005 EDT