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

Тема в разделе "PHP", создана пользователем Drbel, 10 фев 2011.

Модераторы: latteo
  1. Drbel

    Drbel Creator

    Регистр.:
    9 май 2007
    Сообщения:
    1.313
    Симпатии:
    490
    Помогите разобраться со скриптом отправки письма с сайта.

    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

    ?>

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

    Может что прописать нужно в скрипте, чтобы приходил в определенной кодировке, или на сервере?
     
  2. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    205
    Симпатии:
    13
    попробуй закомментировать

    PHP:
     // $key=convert_cyr_string($key, 'w', 'k');  
      // $val=convert_cyr_string($val, 'w', 'k');
     
    Drbel нравится это.
  3. Drbel

    Drbel Creator

    Регистр.:
    9 май 2007
    Сообщения:
    1.313
    Симпатии:
    490
    Закомментировал, получил следующее
    Может на сервере чего настроить нужно, ведь работал на другом хостинге скрипт
     
  4. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    205
    Симпатии:
    13
    а что говорит Support?
     
    Drbel нравится это.
  5. Drbel

    Drbel Creator

    Регистр.:
    9 май 2007
    Сообщения:
    1.313
    Симпатии:
    490
    Что-то я и не подумал его помучить :)
     
  6. Ruslanych

    Ruslanych Создатель

    Регистр.:
    17 фев 2009
    Сообщения:
    37
    Симпатии:
    8
    Попробуй добавить перед
    PHP:
    $headers  "From: Site <$mail>\n"
    Следующее:

    PHP:
    $headers  "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=windows-1251\r\n";
     
    Drbel нравится это.
  7. Drbel

    Drbel Creator

    Регистр.:
    9 май 2007
    Сообщения:
    1.313
    Симпатии:
    490
    Получил следующее:

     
  8. Ruslanych

    Ruslanych Создатель

    Регистр.:
    17 фев 2009
    Сообщения:
    37
    Симпатии:
    8
    При этом
    PHP:
    $key=convert_cyr_string($key'w''k'); 
                    
    $val=convert_cyr_string($val'w''k');
    Были закоментированы?
    Если нет - попробуй закоментировать, и наоборот.
     
  9. Drbel

    Drbel Creator

    Регистр.:
    9 май 2007
    Сообщения:
    1.313
    Симпатии:
    490
    Пробовал и так и так, не помогает, написал в саппорт, жду ответа.

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

    Ruslanych Создатель

    Регистр.:
    17 фев 2009
    Сообщения:
    37
    Симпатии:
    8
    Проще простого:

    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";  
     
    Drbel нравится это.