Forums / National / Russian / Тех. поддержка / Баги и ошибки движка (Genoa 0.6)

Ratibor
#8888 2009-02-26 04:02
Нашел глюк с отправкой мыла с сайта.
Поставил плагин contactus.
В насройках плагина пишу:
Администратор <my@email.ru>;

Заполняю форму, отправляю, пишется что все отправлено нормально.
А вот письмо не приходит.
Сперва подумал может плагин кривой,
ставлю его под денвером,
там есть заглушка для сендмайла и письма складываются в папку.
Отправляю письмо под денвером, все нормально, письмо лежит в папке.
Вывод один, сервак рубит это письмо.

Меняю в настройках плагина:
Administrator <my@email.ru>;
Отправляю письмо и оно наконец то приходит.

Начал проверять у себя в зебате заголовки в письмах,
дак вот в письмах поля From и To тоже кодируются base64.
А у нас только поле Subject. Надо бы поправить это.
Это было раз.

Теперь два:
Не хватает еще одной строки в заголовке.
Надо в function sed_mail перед:
$headers .= "Content-Transfer-Encoding: 8bit\n";

добавить строку:
$headers.= ("Content-type: text/plain; charset=\"".$cfg['charset']."\"\n");

и убрать charset из строки:
$headers = (empty($headers)) ? "From: \"".$cfg['maintitle']."\" <".$cfg['adminemail'].">\n"."Reply-To: <".$cfg['adminemail'].">\n"."Content-Type: text/plain; charset=".$cfg['charset']."\n" : $headers;

Ну а теперь о главном.
function sed_mail это конечно хорошо,
но нет возможности отправлять письма через smtp.
Столкнулся с этим не давно, настраивая знакомым сайт,
дак вот у того прова через mail письма можно отправлять только на те адреса,
которые зарегистрированы в админпанели. А на все остальные, только через smtp.
Надо бы реализовать отправку писем и через smtp.

P.S. ИМХО может стоит заменить строку:
$subject = mb_encode_mimeheader($subject, $cfg['charset'], 'B', "\n");

на:
$subject= "=?".$cfg['charset']."?B?".base64_encode($subject)."?=\n";

А то чтото мне не нравиться что mb_encode_mimeheader разбивает строку на несколько частей.

Вот пример, заголовок - Предложение о сотрудничестве.

После mb_encode_mimeheader получаем:
Subject: =?UTF-8?B?0J/RgNC10LTQu9C+0LbQtdC90LjQtSDQviDRgdC+0YLRgNGD0LTQvdC40Yc=?=  =?UTF-8?B?0LXRgdGC0LLQtQ==?=

а во втором варианте:
Subject: =?UTF-8?B?0J/RgNC10LTQu9C+0LbQtdC90LjQtSDQviDRgdC+0YLRgNGD0LTQvdC40YfQtdGB0YLQstC1?=
Не задавай глупых вопросов, не услышишь вранья.
This post was edited by Ratibor (2009-02-26 05:21, 15 years ago)