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
LXXVI. Traitement d'email
Introduction
| Avertissement |
Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls. |
Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 4.2.0.
Installation
Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/mailparse.
Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support mailparse en utilisant l'option de configuration --enable-mailparse.
Les utilisateurs de Windows doivent activer la bibliothèque php_mailparse.dll dans le php.ini pour pouvoir utiliser ces fonctions. Vous pouvez télécharger ces bibliothèques DLL pour ces extensions PECL depuis la page de téléchargement de PHP sous sur la page http://snaps.php.net/.
- Table des matières
- mailparse_determine_best_xfer_encoding -- Détermine le meilleur encodage pour un fichier
- mailparse_msg_create -- Retourne un analyseur destiné au traitement d'un message
- mailparse_msg_extract_part_file -- Extrait et décode une section de message
- mailparse_msg_extract_part -- Extrait et décode une section de message
- mailparse_msg_free -- Détruit un analyseur créé par mailparse_msg_create()
- mailparse_msg_get_part_data -- Retourne un tableau associatif avec des informations sur le message
- mailparse_msg_get_part -- Retourne une ressource sur une section d'un message MIME
- mailparse_msg_get_structure -- Retourne un tableau avec les différentes sections MIME du message
- mailparse_msg_parse_file -- Analyse un fichier et retourne une ressource représentant la structure du fichier
- mailparse_msg_parse -- Analyse incrémentalement des données dans un buffer
- mailparse_rfc822_parse_addresses -- Analyse les adresses et retourne un tableau contenant ces données
- mailparse_stream_encode -- Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp
- mailparse_uudecode_all -- Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent
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);
}
?>
[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>";;
}
?>
