|
|
|
| Уважаемый Игорь Вячеславович!
Запустил в работу сайт созданный по Вашей методике. Его адрес www.sevidi.ru. Все работает четко. Но одна проблема существует. Это в блоке Администрирование-Почтовые рассылки. Первоначально они были запрограммированы на кодировку koi8-r и в этой же кодировке приходили получателю, например "Тест" отображался как "фЕУФ" и в заголовке и в тексте письма. Когда была изменена кодировка на cp1251 был тот же результат. Почтовй сервер работает с кодировкой cp1251. В файле кодировка находится в двух переменных $body и $header. При установке cp1251 в $body и koi8-r в $header заголовок отображается правильно текст нет. Другие комбинации результата тоже не дали.
Вот код скрипта. Помогите разобраться.
<?php
// Выставляем уровень обработки ошибок
error_reporting(E_ALL & ~E_NOTICE);
// Устанавливаем соединение с базой данных
require_once("../../config/config.php");
// Подлкючаем блок авторизации
require_once("../utils/security_mod.php");
// Подключаем функцию обработки текста
require_once("../utils/utils.print_page.php");
// Формируем письмо
$body = '
<html>
<head>
<title>Новости Web-портала Sevidi</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=cp1251\">
<style>
li {
list-style-image: url(dataimg/optdot_prd.gif);
list-style-type: square;
}
.in_input {
font-family: Tahoma;
font-size: 11px;
color: #000000;
background-color: #FFFFFF;
border: 1px solid #B20000;
}
.in_button {
font-family: Tahoma;
font-size: 11px;
font-weight: bold;
color: #FFFFFF;
background-color: #FF0000;
border: 1px solid #880000;
}
.menu1_txt {
font-family: Tahoma;
font-size: 12px;
font-weight: bold;
color: #FFFFFF;
}
.menu1_txt_lnk {
color: #FFFFFF;
text-decoration: none;
}
.menu1_txt_lnk:hover {
color: #CCCCCC;
}
.menu1s_txt {
font-family: Tahoma;
font-size: 11px;
font-weight: bold;
color: #FFFFFF;
padding-right: 5px;
}
.menu1s_txt_lnk {
color: #FFFFFF;
text-decoration: none;
}
.menu1s_txt_lnk:hover {
color: #B20000;
}
.menu2_txt {
font-family: Tahoma;
font-size: 11px;
color: #000000;
padding-top: 5px;
padding-left: 5px;
padding-right: 5px;
padding-bottom: 5px;
}
.menu2_txt_lnk {
color: #B20000;
text-decoration: none;
}
.menu2_txt_lnk:hover {
color: #00023E;
}
.menu2_ttl {
font-family: Tahoma;
font-size: 12px;
font-weight: bold;
color: #00023E;
padding-left: 15px;
}
.menu2_ttl_lnk {
color: #00023E;
text-decoration: none;
}
.menu2_ttl_lnk:hover {
color: #B20000;
}
.main_ttl {
font-family: Tahoma;
font-size: 12px;
font-weight: bold;
color: #00023E;
padding-left: 10px;
}
.main_txt {
font-family: Tahoma;
font-size: 11px;
text-align: justify;
color: #000000;
padding-top: 5px;
padding-bottom: 5px;
}
.main_txt_lnk {
color: #B20000;
text-decoration: none;
}
.main_txt_lnk:hover {
color: #00023E;
}
.news_ttl {
font-family: Tahoma;
font-size: 12px;
font-weight: bold;
color: #00023E;
padding-left: 10px;
}
.news_txt {
font-family: Tahoma;
font-size: 11px;
text-align: left;
color: #000000;
padding-top: 5px;
padding-left: 5px;
padding-right: 5px;
padding-bottom: 5px;
}
.news_txt_lnk {
color: #B20000;
text-decoration: none;
}
.news_txt_lnk:hover {
color: #00023E;
}
.signature_txt {
font-family: Tahoma;
font-size: 11px;
color: #FFFFFF;
padding-right: 5px;
}
.signature_txt_lnk {
color: #FFFFFF;
text-decoration: none;
}
.signature_txt_lnk:hover {
color: #B20000;
}
.product_ttl {
font-family: Tahoma;
font-size: 12px;
font-weight: bold;
color: #B20000;
padding-bottom: 5px;
}
.product_txt {
font-family: Tahoma;
font-size: 11px;
text-align: left;
color: #000000;
padding-top: 5px;
padding-bottom: 5px;
}
.product_txt_lnk {
color: #B20000;
text-decoration: none;
}
.product_txt_lnk:hover {
color: #00023E;
}
.table1_txt {
font-family: Tahoma;
font-size: 11px;
color: #00023E;
padding-top: 5px;
padding-left: 5px;
padding-right: 5px;
padding-bottom: 5px;
}
.table1_txt_lnk {
color: #00023E;
text-decoration: none;
}
.table1_txt_lnk:hover {
color: #00023E;
text-decoration: underline;
}
.table1_tr_ttl_clr {
background-color: #FF0000;
}
.table1_tr_clr1 {
background-color: #F6F6F6;
}
.table1_tr_clr2 {
background-color: #EEEEEE;
}
</style>
</head>
<body style="padding: 5px;">';
$header = "Content-Type: text/html; charset=cp1251\r\n\r\n";
$body .= "<h3>{$form->fields[name]->value}</h3>";
$body .= "<div class=main_txt>".nl2br(print_page($form->fields['body']->value));
$body .= "</div></body></html>";
// Извлекаем e-mail подписчиков
$query = "SELECT * FROM $tbl_users
GROUP BY email";
$eml = mysql_query($query);
if(!$eml)
{
throw new ExceptionMySQL(mysql_error(),
$query,
"Ошибка при извлечении
списка e-mail");
}
if(mysql_num_rows($eml))
{
while($email = mysql_fetch_array($eml))
{
@mail($email['email'],
convert_cyr_string($form->fields['name']->value,'w','k'),
convert_cyr_string($body,'w','k'),
$header);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: sevidi
(28.08.2009 в 13:01)
| |
<?php
$header = "Content-Type: text/html; charset=cp1251\r\n\r\n";
?>
|
неправильно, правильно так:
<?php
$header = "Content-Type: text/html; charset=windows-1251\r\n\r\n";
?>
|
P.S. Я, конечно, не cheops, но надеюсь что помог. | |
|
|
|
|
|
|
|
для: Commander
(28.08.2009 в 13:33)
| | К сожалению не помогло. Эта комбинация тоже использовалась. | |
|
|
|
|
|
|
|
для: sevidi
(28.08.2009 в 13:59)
| | так а преобразование convert_cyr_string($body,'w','k'), Вы убрать пробовали? | |
|
|
|
|
|
|
|
для: Trianon
(28.08.2009 в 14:02)
| | ... | |
|
|
|
|
|
|
|
для: Trianon
(28.08.2009 в 14:02)
| | Пробовал. Выдало: Content-Type: text/html; charset=windows-1251 | |
|
|
|
|
|
|
|
для: sevidi
(28.08.2009 в 15:19)
| | эдак Вы не только преобразование, но и весь параметр с телом сообщения убрали.
нужно было оставить $body, | |
|
|
|
|
|
|
|
для: Trianon
(28.08.2009 в 15:34)
| | Убрал и получил пустую строку. | |
|
|
|