с сайта приходят письма в странной кодировке.

Coach

Creator
Регистрация
9 Май 2007
Сообщения
1.329
Реакции
493
Помогите разобраться со скриптом отправки письма с сайта.

PHP:
<?php

// Necessary Variables:

$TO = "name@mail.ru";
	// En: E-Mail of mail recipient.

$DEFAULT_EXIT_PAGE = "http://site.com/thanks.html";
	// En: exit page.

// End  Necessary Variables section
/******************************************************************************/

$headers  = "From: Site <$mail>\n";
$headers .= "X-Mailler: PHP 3 Form2Mail made by FTLS, http://www.ftls.org/\n";

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) { 
                $key=convert_cyr_string($key, 'w', 'k'); 
                $val=convert_cyr_string($val, 'w', 'k'); 
	$message .= "$key : $val\n"; 
} 

$message .= "\nSent by ".gethostbyaddr($REMOTE_ADDR). " ($REMOTE_ADDR)\n";

mail($TO, $subject, $message, $headers); 
	// En : Send mail

if(! $exit_page)
	$exit_page = $DEFAULT_EXIT_PAGE;

Header("Location: ".$exit_page);
	// Exit -> $exit_page

?>

Раньше скрипт стоял на другом хостинге, все было ОК!
А теперь приходят в странной кодировке:

т.т.у. : т.т.у.т.т›у.у.
email : 1@mail.ru
тѕт.т›т.у.т.т. : 1234567
т.т.т§у.т.у. : у.т.у.у.

Может что прописать нужно в скрипте, чтобы приходил в определенной кодировке, или на сервере?
 
  • Заблокирован
  • #2
попробуй закомментировать

PHP:
 // $key=convert_cyr_string($key, 'w', 'k');  
  // $val=convert_cyr_string($val, 'w', 'k');
 
попробуй закомментировать
PHP:
 // $key=convert_cyr_string($key, 'w', 'k');  
  // $val=convert_cyr_string($val, 'w', 'k');
Закомментировал, получил следующее
Р˜РјСЏ : Дмитрий
Магазин : name@mail.ru
Вопрос : тест сообщения

Может на сервере чего настроить нужно, ведь работал на другом хостинге скрипт
 
  • Заблокирован
  • #4
Попробуй добавить перед
PHP:
$headers  = "From: Site <$mail>\n";

Следующее:

PHP:
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=windows-1251\r\n";
 
При этом
PHP:
$key=convert_cyr_string($key, 'w', 'k'); 
                $val=convert_cyr_string($val, 'w', 'k');
Были закоментированы?
Если нет - попробуй закоментировать, и наоборот.
Пробовал и так и так, не помогает, написал в саппорт, жду ответа.

В догонку вопрос, как сделать, чтобы письмо приходило с нормальной темой и обратным адресом. А то майл.ру, отправляет в спам такие письма!
 
Проще простого:

PHP:
$subject = "Тема сообщения";
$headers .= "From: example.com <admin@example.com>\r\n";

и убери
PHP:
$headers .= "X-Mailler: PHP 3 Form2Mail made by FTLS, http://www.ftls.org/\n";

Мне кажется нашел ошибку в своих же советах по скрипту, попробуй вместо того что было:

PHP:
$headers  = "From: Site <$mail>\n";
$headers .= "X-Mailler: PHP 3 Form2Mail made by FTLS, http://www.ftls.org/\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=windows-1251\r\n";
 
Назад
Сверху