Я отправляю html письмо с картинкой.
Вот такие заголовки отправляю серверу
"From: =?utf-8?b?R2xvYmFsIERlbnQ=?=
X-Mailer: zm php script
Mime-Version: 1.0
Content-Type: multipart/mixed;
Content-Type: multipart/alternative;
boundary="dentsend.ru-2018"
"
Вот так выглядит тело письма
"--dentsend.ru-2018
Content-type: multipart/related;
boundary="dentsend.ru-2018-1"
--dentsend.ru-2018-1
Content-type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit
--dentsend.ru-2018-1
Content-Type: image/jpg
name="file.2.jpg"
Content-Transfer-Encoding:base64
Content-ID:
Content-Disposition: inline
filename="file.2.jpg"
YjMxMTIzMTIyMTMyMf/Y/+AAEEpGSUYAAQEBASwBLAAA/+0ALFBob3Rvc2hvcCAzLjAAOEJJTQPt
AAAAAAAQASwAAAABAAEBLAAAAAEAAf/hft1odHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/
eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+DQo8eDp4
bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1
LjYtYzE0MyA3OS4xNjEzNTYsIDIwMTcvMDkvMDctMDE6MTE6MjIgICAgICAgICI+DQoJPHJkZjpS
REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMj
Ij4NCgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJs
Lm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFw
LzEuMC8iIHhtbG5zOnhtcEdJbWc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nL2ltZy8i
IHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJl
... дальше бинарник очень длинный
--dentsend.ru-2018--
"
Письмо приходит, но картинки в теле письма нет вообще, а во вложение файл непонятного расширения с именем no_name.
В чём здесь ошибка? как это пофиксить?
Как вариант примерно так:
$subject = "тема письма";
$message ="Текст сообщения";
// текст сообщения, здесь вы можете вставлять таблицы, рисунки, заголовки, оформление цветом и т.п.
$filename = "file.doc";
// название файла
$filepath = "files/file.doc";
// месторасположение файла
//исьмо с вложением состоит из нескольких частей, которые разделяются разделителем
$boundary = "--".md5(uniqid(time()));
// генерируем разделитель
$mailheaders = "MIME-Version: 1.0;\r\n";
$mailheaders .="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
// разделитель указывается в заголовке в параметре boundary
$mailheaders .= "From: $user_email <$user_email>\r\n";
$mailheaders .= "Reply-To: $user_email\r\n";
$multipart = "--$boundary\r\n";
$multipart .= "Content-Type: text/html; charset=windows-1251\r\n";
$multipart .= "Content-Transfer-Encoding: base64\r\n";
$multipart .= \r\n;
$multipart .= chunk_split(base64_encode(iconv("utf8", "windows-1251", $message)));
// первая часть само сообщение
// Закачиваем файл
$fp = fopen($filepath,"r");
if (!$fp)
{
print "Не удается открыть файл22";
exit();
}
$file = fread($fp, filesize($filepath));
fclose($fp);
// чтение файла
$message_part = "\r\n--$boundary\r\n";
$message_part .= "Content-Type: application/octet-stream; name=\"$filename\"\r\n";
$message_part .= "Content-Transfer-Encoding: base64\r\n";
$message_part .= "Content-Disposition: attachment; filename=\"$filename\"\r\n";
$message_part .= \r\n;
$message_part .= chunk_split(base64_encode($file));
$message_part .= "\r\n--$boundary--\r\n";
// второй частью прикрепляем файл, можно прикрепить два и более файла
$multipart .= $message_part;
mail($to,$subject,$multipart,$mailheaders);
// отправляем письмо
//удаляем файлы через 60 сек.
if (time_nanosleep(5, 0)) {
unlink($filepath);
}
// удаление файла
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вообщем есть 4 сервиса, у каждого сервиса свое ядро свой конфиг свое пространство имен и есть апи который принимает запрос и проверяет состояние...
Есть такая строка [mod]тут может быть что угодно[/mod], она находится в неком тексте ( строке ), нужно средствами php заменить выше приведенную строку...