protected static function MailMIME::parseDecoded in Mail MIME 7.2
Same name and namespace in other branches
- 8.2 mailmime.inc \MailMIME::parseDecoded()
- 6.2 mailmime.inc \MailMIME::parseDecoded()
- 6 mailmime.inc \MailMIME::parseDecoded()
- 7 mailmime.inc \MailMIME::parseDecoded()
Recursively copies message parts into a MailMIME object.
Copies the MIME parts from an object returned by Mail_mimeDecode->decode() into a MailMIME object, including subparts of any 'multipart' parts.
Parameters
$parsed: The target MailMIME object.
$decoded: The object returned by Mail_mimeDecode->decode() whose MIME parts are being copied.
$parent_subtype: The content-type subtype of the parent multipart MIME part. This should be either 'mixed', 'related', or 'alternative'. Defaults to an empty string, signifying the root of the MIME tree.
1 call to MailMIME::parseDecoded()
- MailMIME::parse in ./
mailmime.inc - Parse a complete message and return a MailMIME object.
File
- ./
mailmime.inc, line 669 - Provides the MailMIME class for creating MIME-formatted email messages.
Class
- MailMIME
- The MailMIME class is used to create MIME email messages.
Code
protected static function parseDecoded(MailMIME &$parsed, stdClass &$decoded, $parent_subtype = '') {
if ($decoded->ctype_primary == 'multipart') {
if (!empty($decoded->parts)) {
foreach (array_keys($decoded->parts) as $key) {
self::parseDecoded($parsed, $decoded->parts[$key], $decoded->ctype_secondary);
}
}
return;
}
if (empty($decoded->body)) {
return;
}
switch ($decoded->ctype_primary) {
case 'text':
if ($parent_subtype == '' || $parent_subtype == 'alternative' || $parent_subtype == 'related') {
if ($decoded->ctype_secondary == 'plain') {
$parsed
->setTXTBody($decoded->body);
return;
}
elseif ($decoded->ctype_secondary == 'html') {
$parsed
->setHTMLBody($decoded->body);
return;
}
}
case 'image':
if ($parent_subtype == 'related') {
$cid = isset($decoded->headers['content-id']) ? $decoded->headers['content-id'] : NULL;
return;
}
default:
$type = $decoded->ctype_primary . '/' . $decoded->ctype_secondary;
$name = isset($decoded->d_parameters['name']) ? $decoded->d_parameters['name'] : (isset($decoded->d_parameters['filename']) ? $decoded->d_parameters['filename'] : '');
if (!empty($name) && !empty($cid)) {
$parsed
->addHTMLImage($decoded->body, $type, $name, FALSE, $cid);
return;
}
$parsed
->addAttachment($decoded->body, $type, $name, FALSE);
}
}