jon45 |
Отправлено: 5 октября 2011 — 07:09
|
Newbie
Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2010
Откуда: Курган
Репутация: 0
|
Помогите кто может!!!
Форум на сайте работает уже около года. До 30.09.11г. проблем не было.
После 30.09 пользователи начали жаловаться, что не могут прочитать письма, генерируемые с форума, в том числе и вновь регистрирующиеся пользователи (приходит письмо с логином и паролем, а прочитать не могут). Причем по тексту письма читаются все ссылки и текст на латыни, а вот русский - нечитаем (либо пусто, либо пробелы/тире).
Попробовал внести изменения из этого топика:
http://exbb.info/community/topic...=6&topic=411
после чего заголовок письма стал читаем, а вот само письмо - без изменений.
Понятно, что дело в кодировке. Но вопросы к админам хостинга (хостинг платный) ничего не дали. Говорят, изменений на хостинге не было, а консультаций по написанию кода они естественно не дают. Но ведь год все работало нормально!
Очень надеюсь, что кто то здесь сможет помочь с этой проблемой. |
|
|
jon45 |
Отправлено: 6 октября 2011 — 01:31
|
Newbie
Покинул форум
Сообщений всего: 37
Дата рег-ции: Дек. 2010
Откуда: Курган
Репутация: 0
|
А нельзя применить для тела письма ту же конструкцию, что и для заголовка?
CODE:$send_charset = "windows-1251";
$list[0]='=?' . $send_charset . '?B?' . base64_encode($list[0]) . '?=';
$list[3]='=?' . $send_charset . '?B?' . base64_encode($list[3]) . '?=';
Сдается мне, что если это сделать, проблема решится. Кто подскажет КАК?
В каких файлах копать?
Сейчас email функции в файле fm.class.php выглядят так:
CODE:/*
_Mail Основная функция которая определяет как отправлять письма
*/
function _Mail() {
$this->_SendMail(func_get_args());
}
/*
_SendMail функция отправки e-mail через sendmail сервера
*/
function _SendMail($list) {
$send_charset = "windows-1251";
$list[0]='=?' . $send_charset . '?B?' . base64_encode($list[0]) . '?=';
$list[3]='=?' . $send_charset . '?B?' . base64_encode($list[3]) . '?=';
$headers = 'From: '.$list[0].' <'.$list[1].">\n";
$headers .= 'Reply-To: '.$list[1]."\n";
$headers .= 'Return-Path: '.$list[1]."\n";
$headers .= "MIME-Version: 1.0\nContent-type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit\nDate: " . gmdate('D, d M Y H:i:s', time()) . " UT\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\n";
$skip_mails = (file_exists(FM_SKIP_MAILS)) ? file(FM_SKIP_MAILS):array();
if (count($skip_mails) !== 0) {
unset($skip_mails[0]);
$skip_mails = preg_replace("#(\r\n|\|$)#","",trim(implode("|",$skip_mails)));
} else {
$skip_mails = "@";
}
$users = $this->_Read(FM_USERS);
if (is_array($list[2])) {
@set_time_limit(360);
foreach ($list[2] as $user_id => $flag) {
if (isset($users[$user_id]) && !preg_match("#(".$skip_mails.")$#is",$users[$user_id]['m'])) {
mail($users[$user_id]['m'], $list[3], $list[4], $headers);
}
}
} else {
if (!preg_match("#(".$skip_mails.")$#is",$list[2])) {
mail($list[2], $list[3], $list[4], $headers);
}
}
}
(Отредактировано автором: 6 октября 2011 — 01:34) |
|
|
BON |
Отправлено: 7 октября 2011 — 15:31
|
ExBB Team Admin
Покинул форум
Сообщений всего: 2762
Дата рег-ции: Нояб. 2010
Откуда: СССР/Белгород
Репутация: 72
|
само тело которое формирует письмо находится в фаиле lang_front_register.php
/Смотреть (Отобразить)*
Email/PM texts
*/
$this->LANG['NewUserPMMsg'] = '%s, здравствуйте!
Добро пожаловать на наш форум.
Теперь Вы можете размещать свои вопросы, пожелания, участвовать в беседах. Здесь Вы всегда найдете поддержку и помощь.
Не забывайте, что на форуме приветствуется корректность и вежливость.
Кроме того, проблемы старайтесь формулировать внятно: в правильно заданном вопросе обычно содержится половина ответа.
Новые темы создавать следует лишь в соответствующих разделах.
Если у Вас остались вопросы, связанные с работой форума, заходите [url=%s/rules.php]сюда[/url].
Приятной прогулки! Надеюсь Вам будет здесь интересно.
С уважением, Администратор форума.';
$this->LANG['EmailNewUserRegistered'] = '%s
%s
---------------------------------------------------------------- -----
Регистрационная информация нового пользователя:
Имя: %s
Пароль: %s
Адрес e-mail: %s
Домашняя страничка: %s
IP - адрес пользователя: %s
---------------------------------------------------------------- -----
';
$this->LANG['EmailThanksRegistration'] = 'Спасибо за регистрацию на нашем форуме %s
%s
>---------------------------------------------------------------------
Ваше имя и пароль написано ниже:
Имя: %s
Пароль: %s
>---------------------------------------------------------------------
Имя пользователя и пароль чуствительны к регистру.
Пожалуйста обратите внимание, что Вы можете изменить пароль в любое время
редактируя ваш Профиль. Если Вы изменяете ваш адрес электронной почты,
новый пароль будет послан Вам на email.
';
$this->LANG['EmailNewUserRegistered'] = '%s
%s
---------------------------------------------------------------- -----
Регистрационная информация нового пользователя:
Имя: %s
Пароль: %s
Адрес e-mail: %s
Домашняя страничка: %s
IP - адрес пользователя: %s
---------------------------------------------------------------- -----
';
$this->LANG['RegRequest'] = "Здравствуйте, %3\$s,
Это письмо отправлено с сайта %2\$s .
Вы получили это письмо, так как этот e-mail адрес был использован при регистрации на форуме \"%1\$s\" ( %2\$s ).
Если Вы не регистрировались на этом форуме, просто проигнорируйте это письмо и удалите его. Вы больше не получите такого письма.
------------------------------------------------
Инструкция по активации
------------------------------------------------
Мы требуем от Вас подтверждения Вашей регистрации, для проверки реальности введенного e-mail. Это нужно для защиты от злоупотреблений и спама.
Для активации Вашего аккаунта Вам необходимо, в течении суток (24 часа), зайти по следующей ссылке:
%2\$s/register.php?action=activate®id=%5\$s&code=%6\$s
(Пользователям AOL E-mail, потребуется скопировать эту ссылку и вставить в адресную строку браузера).
------------------------------------------------
Не сработало?
------------------------------------------------
Если у Вас ничего не получилось и Вы не смогли подтвердить свою регистрацию, зайдите по следующей ссылке:
%2\$s/register.php?action=activate
Там от Вас потребуется ввод ID регистрации и ключа подтверждения. Ниже указаны эти данные:
ID регистрации: %5\$s
Ключ подтверждения: %6\$s
Скопируйте/Вставьте или введите эти данные вручную в соответствующие поля.
Если и при этих действиях ничего не получилось, возможно, Ваш аккаунт уже удалён.
В этом случае обратитесь к Администратору для разрешения проблемы.
Если активация аккаунта прошла успешно Вы можете авторизоваться на форуме используя для входа следующие данные:
Логин: %3\$s
Пароль: %4\$s
Логин и пароль чувствительны к регистру!
Благодарим Вас за регистрацию!
С уважением, Администрация форума \"%1\$s\"
";
$this->LANG['SendPassEmail'] = "Здравствуйте, %3\$s,
Это письмо отправлено с сайта %2\$s .
Вы получили это письмо, так как Вы или кто-то другой воспользовался функцией восстановления пароля на форуме \"%1\$s\" ( %2\$s ).
Если Вы не запрашивали пароль на этом форуме, просто проигнорируйте это письмо и удалите его. Вы больше не получите такого письма.
До тех пор пока новый пароль не будет активизирован, Вы можете использовать свой старый пароль для входа на форум!
------------------------------------------------
Инструкция по активации
------------------------------------------------
Чтобы удостовериться, что именно Вы, а не кто-то другой запрашивал восстановление пароля, мы требуем от Вас подтверждения этой операции.
Для подтверждения запроса и активации нового пароля Вам необходимо, в течении суток (24 часа), зайти по следующей ссылке:
%2\$s/profile.php?action=activate&user=%4\$s&actid=%5\$s&code=%6\$s
(Пользователям AOL E-mail, потребуется скопировать эту ссылку и вставить в адресную строку браузера).
------------------------------------------------
Не сработало?
------------------------------------------------
Если у Вас ничего не получилось и Вы не смогли подтвердить свой запрос, зайдите по следующей ссылке:
%2\$s/profile.php?action=activate
Там от Вас потребуется ввод Вашего ID на форуме, ID запроса и ключа подтверждения. Ниже указаны эти данные:
Ваш ID на форуме: %4\$s
ID запроса: %5\$s
Ключ подтверждения: %6\$s
Скопируйте/Вставьте или введите эти данные вручную в соответствующие поля.
Если и при этих действиях ничего не получилось, возможно, истекло время отведенное на активацию нового пароля.
В этом случае повторите запрос восстановления пароля повторно.
Если активация запроса прошла успешно Вы можете авторизоваться на форуме используя для входа следующие данные:
Логин: %3\$s
Пароль: %7\$s
Логин и пароль чувствительны к регистру!
Благодарим Вас за регистрацию!
С уважением, Администрация форума \"%1\$s\"
";
/*
но оно походу вам ничего не даст. А вообще напишите хостеру для начала |
|
|
|