public function extractImagesIntoInlineParts(&$Mail, $options = array()) { $html =& $Mail->body; $images = AkTextHelper::get_image_urls_from_html($html); $html_images = array(); if (!empty($images)) { $tmp_dir = AkConfig::getDir('tmp'); $app_dir = AkConfig::getDir('app'); $images = array_diff(array_unique($images), array('')); foreach ($images as $image) { $original_image_name = $image; if (substr($image, 0, 4) == 'cid:') { continue; } $image = $this->_getImagePath($image); if (!empty($image)) { $extenssion = substr($image, strrpos('.' . $image, '.')); $image_name = Ak::uuid() . '.' . $extenssion; $html_images[$original_image_name] = 'cid:' . $image_name; $Mail->setAttachment('image/' . $extenssion, array('body' => AkFileSystem::file_get_contents($image, array('base_path' => strstr($image, $app_dir) ? null : $tmp_dir)), 'filename' => $image_name, 'content_disposition' => 'inline', 'content_id' => '<' . $image_name . '>')); } } $modified_html = str_replace(array_keys($html_images), array_values($html_images), $html); if ($modified_html != $html) { $html = $modified_html; $Mail->moveBodyToInlinePart(); } } }