Kela
Новичок
Не работает mail(...) при кодировании темы в base64 с разбитием на части
PHP Version 5.2.6
magic_quotes_gpc On
register_globals On
Столкнулся с такой проблемой на одном из хостингов. Уже два дня переписываюсь со службой поддержки, но результата ноль.
Суть проблемы: имеется скрипт, который отправляет письмо. Тема письма кодируется в base64. При этом, если следовать самым жестким стандартам RFC-2822 (Internet Message Format) и делать строки длиной не более 78 символов, то mail(...) письмо не отправляет и возвращает false. Если же не разбивать строки, то все работает прекрасно!
Хочу заметить, что тот же скрипт на другом хостинге с такой же версией PHP работает в обоих случаях. Вот скрипт ():
Буду благодарен за любую информацию!
PHP Version 5.2.6
magic_quotes_gpc On
register_globals On
Столкнулся с такой проблемой на одном из хостингов. Уже два дня переписываюсь со службой поддержки, но результата ноль.
Суть проблемы: имеется скрипт, который отправляет письмо. Тема письма кодируется в base64. При этом, если следовать самым жестким стандартам RFC-2822 (Internet Message Format) и делать строки длиной не более 78 символов, то mail(...) письмо не отправляет и возвращает false. Если же не разбивать строки, то все работает прекрасно!
Хочу заметить, что тот же скрипт на другом хостинге с такой же версией PHP работает в обоих случаях. Вот скрипт ():
PHP:
<?
// $subject_= "Это немного длинная тема сообщения";
echo "Если не разбивать тему, а отправлять все одним куском: ";
$subject = "=?UTF-8?B?0K3RgtC+INC90LXQvNC90L7Qs9C+INC00LvQuNC90L3QsNGPINGC0LXQvNCwINGB0L7QvtCx0YnQtdC90LjRjw==?=";
$message ="это мегатестовое сообщение";
$header="To: [email protected]\n";
$header.="Subject: ".$Subject."\n";
$header.="Mime-Version: 1.0\n";
$header.="Content-Type: text/plain; charset=\"UTF-8\"\n";
$header.="Content-Transfer-Encoding:base64\n";
$body.=base64_encode($message)."\n";
if( mail("[email protected]",$subject,$body,$header)) { echo "<b style=\"color: green;\">send!</b>"; } else {echo "<b style=\"color: red;\">not send!</b>";}
echo "<br />";
/////////////////////////////////////////////////////
$subject = "=?UTF-8?B?0K3RgtC+INC90LXQvNC90L7Qs9C+INC00LvQuNC90L3QsNGPINGC0LXQvNCw?=";
$subject .= "\n";
$subject .= "=?UTF-8?B?INGB0L7QvtCx0YnQtdC90LjRjw==?=";
$message ="это мегатестовое сообщение";
$header="To: [email protected]\n";
$header.="Subject: ".$Subject."\n";
$header.="Mime-Version: 1.0\n";
$header.="Content-Type: text/plain; charset=\"UTF-8\"\n";
$header.="Content-Transfer-Encoding:base64\n";
$body.=base64_encode($message)."\n";
echo "Разбиваем тему сообщения на части, каждая из которых не привышает 78 байт: ";
if( mail("[email protected]",$subject,$body,$header)) { echo "<b style=\"color: green;\">send!</b>"; } else {echo "<b style=\"color: red;\">not send!</b>";}
?>