Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Отправка писем с вложенными картинками на PHP
Пример простой php-функции для отправки писем с картинками внутри.
/**
* отправка письма с вложениями
*
* @param string $from от кого
* @param string $to кому
* @param string $subject тема
* @param string $text собственно текст (html)
* @param string $cc копия
* @return unknown
*/
function multipart_mail($from, $to, $subject, $text,$cc=null) {
$domain=$_SERVER['host'];
$headers ="From: $from\n";
//$headers.="To: $to\n";
if (!is_null($cc)) {
$headers.="Cc: $cc\n";
}
//$headers.="Subject: $subject\n";
$headers.="Date: ".date("r")."\n";
$headers.="Return-Path: $from\n";
$headers.="X-Mailer: zm php script\n";
$headers.="MIME-Version: 1.0\n";
$headers.="Content-Type: multipart/alternative;\n";
$baseboundary="------------".strtoupper(md5(uniqid(rand(), true)));
$headers.=" boundary=\"$baseboundary\"\n";
$headers.="This is a multi-part message in MIME format.\n";
$message="--$baseboundary\n";
$message.="Content-Type: text/plain; charset=utf-8\n";
$message.="Content-Transfer-Encoding: 7bit\n\n";
$text_plain=str_replace('<p>',"\n",$text);
$text_plain=str_replace('<b>',"",$text_plain);
$text_plain=str_replace('</b>',"",$text_plain);
$text_plain=str_replace('<br>',"\n",$text_plain);
$text_plain= preg_replace('/<a(\s+)href="([^"]+)"([^>]+)>([^<]+)/i',"\$4\n\$2",$text_plain);
$message.=strip_tags($text_plain);
$message.="\n\nIts simple text. Switch to HTML view!\n\n";
$message.="--$baseboundary\n";
$newboundary="------------".strtoupper(md5(uniqid(rand(), true)));
$message.="Content-Type: multipart/related;\n";
$message.=" boundary=\"$newboundary\"\n\n\n";
$message.="--$newboundary\n";
$message.="Content-Type: text/html; charset=utf-8\n";
$message.="Content-Transfer-Encoding: 7bit\n\n";
$message.=($text)."\n\n";
preg_match_all('/img(\s+)src="([^"]+)"/i',$text,$m);
if (isset($m[2])) {
$img_f=$m[2];
if (is_array($img_f)) {
foreach ($img_f as $k => $v) {
$img_f[$k]=str_ireplace($domain.'/','',$v);
}
}
}
$attachment_files=$img_f;
if (is_array($attachment_files)) {
foreach($attachment_files as $filename) {
$file_content = file_get_contents($filename,true);
$mime_type='image/png';
if(function_exists("mime_content_type")) {
$mime_type=mime_content_type($filename);
}
else {
switch (file_ext($filename)) {
case 'jpg': $mime_type='image/jpeg';break;
case 'gif': $mime_type='image/gif';break;
case 'png': $mime_type='image/png';break;
default:;
}
}
$message=str_replace($domain.'/'.$filename,'cid:'.basename($filename),$message);
$filename=basename($filename);
$message.="--$newboundary\n";
$message.="Content-Type: $mime_type;\n";
$message.=" name=\"$filename\"\n";
$message.="Content-Transfer-Encoding: base64\n";
$message.="Content-ID: <$filename>\n";
$message.="Content-Disposition: inline;\n";
$message.=" filename=\"$filename\"\n\n";
$message.=chunk_split(base64_encode($file_content));
}
}
$message.="--$newboundary--\n\n";
$message.="--$baseboundary--\n";
return mail($to, $subject, $message , $headers);
}
Автор Philipp Tkachev
Смотрите также:
- Универсальная рассылка почты на PHP
- Вставка изображения в письмо на PHP
- Отправка почты по шаблону на PHP
- Удалить все сообщения из почтового ящика
- Настройки SPF и DKIM чтобы письма не попадали в спам
- email рассылка по шаблону на PHP
.
Прокомментировать/Отблагодарить