private function extractEmbededImages($message) { $imgFiles = array(); preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images); if (isset($images[2])) { $dir = Form::getDataDir(); foreach ($images[2] as $imgindex => $url) { // Convert data URIs into embedded images if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) { $data = substr($url, strpos($url, ',')); if ($match[2]) { $data = base64_decode($data); } else { $data = rawurldecode($data); } $type = basename($match[1]); $id = md5(uniqid(rand(), true)); $file = $dir . '/' . $id . '.' . $type; $ok = file_put_contents($file, $data); //$cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2 //$cid = md5( $file ) . '@mailgun.0'; // RFC2392 S 2 $cid = basename($file); $imgFiles[] = array('path' => $file, 'name' => $cid); $message = str_replace($images[0][$imgindex], $images[1][$imgindex] . '="cid:' . $cid . '"', $message); } // if } // foreach } // if return array('imgFiles' => $imgFiles, 'message' => $message); }