Отправка писем с картинками в тексте

В редакторе

Отправка писем с картинками в тексте

Brain_Script
756
2019-07-12 10:19:30
// картинки $attach = array( '/imgs/1.jpg', '/imgs/2.jpg' ); // чтобы отображалась картинка и ее не было в аттаче // путь к картинке задается через CID: - Content-ID // тестовая верстка письма $text = ' <div style="width: 700px; margin: 0 auto;"> <h1>тело письма с картинкой</h1> <h2>Блок по центру</h2> <p> <img style="float: left;" src="cid:1.jpg" /> Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. <br/> <img style="float: left;" src="cid:2.png" /> Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. </p> </div> '; // E-mail отправителя $from = "test@test.com"; // E-mail получателя $to = "test_2@test.com"; // Тема письма $subject = "Тема письма"; // Заголовки письма === >>> $headers = "From: $from\r\n"; //$headers .= "To: $to\r\n"; $headers .= "Subject: $subject\r\n"; $headers .= "Date: " . date("r") . "\r\n"; $headers .= "X-Mailer: zm php script\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .="Content-Type: multipart/alternative;\r\n"; // генерируем базовый разделитель $baseboundary = "------------" . md5(microtime()); $headers .= " boundary=\"$baseboundary\"\r\n"; // <<< ==================== // Тело письма === >>> $message = "--$baseboundary\r\n"; $message .= "Content-Type: text/plain;\r\n"; $message .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $message .= "--$baseboundary\r\n"; // генерируем разделитель для картинок $newboundary = "------------" . md5(microtime()); $message .= "Content-Type: multipart/related;\r\n"; $message .= " boundary=\"$newboundary\"\r\n\r\n\r\n"; $message .= "--$newboundary\r\n"; $message .= "Content-Type: text/html; ". "charset=utf-8\r\n"; $message .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $message .= $text . "\r\n\r\n"; // <<< ============== // прикрепляем файлы ===>>> foreach($attach as $filename){ $mimeType='image/png'; // получаем картинку $fileContent = file_get_contents($filename,true); $filename = basename($filename); $message.="--$newboundary\r\n"; $message.="Content-Type: $mimeType;\r\n"; $message.=" name=\"$filename\"\r\n"; $message.="Content-Transfer-Encoding: base64\r\n"; $message.="Content-ID: <$filename>\r\n"; $message.="Content-Disposition: inline;\r\n"; $message.=" filename=\"$filename\"\r\n\r\n"; // кодируем картинку $message.= chunk_split(base64_encode($fileContent)); } // <<< ==================== // заканчиваем тело письма, дописываем разделители $message.="--$newboundary--\r\n\r\n"; $message.="--$baseboundary--\r\n"; // отправка письма $result = mail($to, $subject, $message , $headers); if($result){ echo "Письмо успешно отправлено!"; }else{ echo "Письмо не отправлено!"; }
Войдите для добавления комментария.
Нет комментариев
Яндекс.Метрика Яндекс.Метрика