Example #1
0
function fixCharsetAndAddSubParts(&$email, $part)
{
    if (isset($part)) {
        $new_part = null;
        if (isset($part->ctype_parameters['charset'])) {
            $part->ctype_parameters['charset'] = 'UTF-8';
            $new_part = addSubPart($email, $part);
        } else {
            $new_part = addSubPart($email, $part);
        }
        if (isset($part->parts)) {
            foreach ($part->parts as $subpart) {
                fixCharsetAndAddSubParts($new_part, $subpart);
            }
        }
    }
}
Example #2
0
/**
 * Add extra parts (not text; inlined or attached parts) to a mimepart object.
 *
 * @param Mail_mimePart $email reference to the object
 * @param array $parts array of parts
 *
 * @access private
 * @return void
 */
function addExtraSubParts(&$email, $parts)
{
    if (isset($parts)) {
        foreach ($parts as $part) {
            $new_part = null;
            // Only if it's an attachment we will add the text parts, because all the inline/no disposition have been already added
            if (isset($part->disposition) && $part->disposition == "attachment") {
                printf("%s\n", sprintf("BackendIMAP->addExtraSubParts(): extraSubPart attachment found"));
                // it's an attachment
                $new_part = addSubPart($email, $part);
            } else {
                printf("%s\n", sprintf("BackendIMAP->addExtraSubParts(): extraSubPart no attachment found"));
                if (isset($part->ctype_primary) && $part->ctype_primary != "text" && $part->ctype_primary != "multipart") {
                    printf("%s\n", sprintf("BackendIMAP->addExtraSubParts(): it's not a text part or a multipart"));
                    // it's not a text part or a multipart
                    $new_part = addSubPart($email, $part);
                }
            }
            if (isset($part->parts)) {
                printf("%s\n", sprintf("BackendIMAP->addExtraSubParts(): found subparts to my sub-part. Recursive calling"));
                // We add sub-parts to the new part, not to the main message
                addExtraSubParts($new_part === null ? $email : $new_part, $part->parts);
            }
        }
    }
}