Доброго времени! Прошу помощи в решении вопроса с отображением аттача в письме.
Задача принять письмо на почтовый ящик, проанализировать его и передать это письмо на другой почтовый ящик.
Сотрудник отправляет сообщение на почтовый ящик скрипт анализирует его и принимает решение куда переслать, пересылает на
Есть два варианта работы
1. Пересылка только текста и вложений, здесь всё работает
2 Пересылка текста + вложений (картинок) внутри текста
Не получается переслать вложения (картинки) внутри текста, так как я не понимаю как подцепиться к CID который есть в письме.
Вот здесь видно пересланное сообщение, два файла были в аттаче, а третий файл он был прикреплён не как аттач, а как файл в теле письма.
Но при пересылке, он становится как аттач и в теле письма не отображается. А подцепить его зная [ cid:b51c7d49-42d2-48c7-8b55-16b42b52d61d ] не получается, так как [ cid:b51c7d49-42d2-48c7-8b55-16b42b52d61d ] мне ничего не даёт, где он хранится я не знаю.
Посмотрел в теле письма в заголовках и тд и тп где только можно ... но увы
вот код
Правило прописано для работы с письмами вот здесь "Админка битрикс" -> "Сервисы" -> "Почта" -> "Правила"
Задача принять письмо на почтовый ящик, проанализировать его и передать это письмо на другой почтовый ящик.
Сотрудник отправляет сообщение на почтовый ящик скрипт анализирует его и принимает решение куда переслать, пересылает на
Есть два варианта работы
1. Пересылка только текста и вложений, здесь всё работает
2 Пересылка текста + вложений (картинок) внутри текста
Не получается переслать вложения (картинки) внутри текста, так как я не понимаю как подцепиться к CID который есть в письме.
Вот здесь видно пересланное сообщение, два файла были в аттаче, а третий файл он был прикреплён не как аттач, а как файл в теле письма.
Но при пересылке, он становится как аттач и в теле письма не отображается. А подцепить его зная [ cid:b51c7d49-42d2-48c7-8b55-16b42b52d61d ] не получается, так как [ cid:b51c7d49-42d2-48c7-8b55-16b42b52d61d ] мне ничего не даёт, где он хранится я не знаю.
Посмотрел в теле письма в заголовках и тд и тп где только можно ... но увы
вот код
Правило прописано для работы с письмами вот здесь "Админка битрикс" -> "Сервисы" -> "Почта" -> "Правила"
| Код |
|---|
$arMessageFields['BODY'] - здесь хранится письмо которое нужно передать
/* формируем волшебные заголовки */
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers = "From: corportal@samberi.com";
$headers.= "\nMIME-Version: 1.0\n"."Content-Type: multipart/mixed;\n"." boundary=\"{$mime_boundary}\"";
$eol = PHP_EOL;
$message = "--$mime_boundary$eol" .
"Content-Type: text/html; charset=\"UTF-8\"$eol" .
"Content-Transfer-Encoding: 7bit$eol$eol" .
$mainMessage . $eol;
/* получаем файлы из Битрикса */
if($arMessageFields["ATTACHMENTS"]>0)
{
$dbr_attach = CMailAttachment::GetList(Array("NAME"=>"ASC", "ID"=>"ASC"), Array("MESSAGE_ID"=>$arMessageFields["ID"]));
while($dbr_attach_arr = $dbr_attach->GetNext())
{
$random_string = mt_rand().mt_rand().mt_rand().mt_rand();
$file1_ext = end(explode(".", $dbr_attach_arr["FILE_NAME"]));
$file1_name = substr($dbr_attach_arr["FILE_NAME"], 0, -strlen($file1_ext)-1);
$file1_newname = $file1_name.$random_string.".".$file1_ext;
$arFile = CFile::MakeFileArray($dbr_attach_arr["FILE_ID"]);
$f = fopen($_SERVER['DOCUMENT_ROOT'].'/upload/sniff_info_gm/'.$file1_newname,'ab');
fwrite($f, print_r(file_get_contents($arFile["tmp_name"]),1));
fclose($f);
$filesArr[] = $arFile["ID"];
$Path = '/'.$file1_newname;
$fileatt = $_SERVER['DOCUMENT_ROOT'].'/upload/sniff_info_gm/'.$file1_newname;
$fileatttype = mime_content_type($_SERVER['DOCUMENT_ROOT'].'/upload/sniff_info_gm/'.$file1_newname);
$fileattname = $dbr_attach_arr["FILE_NAME"];
$file = fopen($fileatt, 'rb');
$data = fread($file, filesize($fileatt));
fclose($file);
$data = chunk_split(base64_encode($data));
$message .= "--$mime_boundary$eol" .
"Content-Type: $fileatttype;$eol" .
" name=\"$fileattname\"$eol" .
"Content-Disposition: attachment;$eol" .
" filename=\"$fileattname\"$eol" .
"Content-Transfer-Encoding: base64$eol".
"Content-ID: img".$dbr_attach_arr["ID"]."$eol$eol".
$data . $eol;
}
}
mail($elem_582_gm['NAME'], $sbj, $message, $headers);
|