コード例 #1
0
ファイル: parser.php プロジェクト: bermi/akelos
 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();
         }
     }
 }