note 47480 added to ref.imap
| From: | sirber at gmail dot com | Date: | Wed, 17 Nov 2004 18:42:09 +0000 |
| Subject: | note 47480 added to ref.imap | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-80649@lists.php.net to get a copy of this message | ||
Here's a function to create a full structure with decoded bodies. Usefull for handeling complex
MIME messages.
// Construction de la structure du message
$struct = imap_fetchstructure($mbox, $mnum);
// Recherche des body et décodage de la structure
buildparts($mbox, $mnum, $struct);
function buildparts ($mbox, $mnum, &$struct, $pno = "")
{
switch ($struct->type)
{
case 1: // multipart
// Recherche des sous partie
$i = 1;
while (list($j) = each ($struct->parts))
buildparts ($mbox, $mnum, $struct->parts[$j], $pno . "." . $i++);
break;
case 2: // message
// Décodage de la sous partie (et de ses sous parties)
buildparts ($mbox, $mnum, $struct->parts[0], $pno);
break;
default:
$part = substr ($pno, 1);
// On save le part_number
$struct->part_number = $part;
// On fetch le body de la partie
$struct->body = imap_fetchbody($mbox, $mnum, $part);
// On le décode
if($struct->encoding == 3)
$struct->body = imap_base64($struct->body);
elseif($struct->encoding == 4)
$struct->body = imap_qprint($struct->body);
// On décode les charset
if ($struct->paraneters[0]->attribute == "CHARSET")
{
$charset = $struct->paraneters[0]->value;
if ($charset == "utf-8")
$struct->body = utf8_decode($struct->body);
if ($charset == "utf-7")
$struct->body = imap_utf7_decode($struct->body);
}
break;
}
}
----
Manual Page -- http://www.php.net/manual/en/ref.imap.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+47480
Delete -- http://master.php.net/manage/user-notes.php?action=delete+47480&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+47480&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+47480&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+47480&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+47480&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+47480&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+47480&report=yes
Search -- http://master.php.net/manage/user-notes.php