Кодировка письма при отпавке на почту PHP

Тема в разделе "PHP", создана пользователем Robert Plant, 14 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Robert Plant

    Robert Plant Создатель

    Регистр.:
    18 ноя 2008
    Сообщения:
    41
    Симпатии:
    16
    Помогите у меня письма приходят в абракадабра при отправке письма. Надо поставить кодировку win 1251. А вот как сделать что бы обработчик правильно читал?
    В PHP я еще не очень силен!

    Еще может сам хост принимает письма в кодировке Koi-R8 если что можно сделать перекодировку?

    Вот сама страница с формой заказа

    PHP:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <
    HTML><HEAD>
    <
    META http-equiv=Content-Type content="text/html; charset=windows-1251">

    <
    STYLE type=text/css>.button {
        
    BORDER-TOP-WIDTH0pxFONT-WEIGHTboldBORDER-LEFT-WIDTH0pxFONT-SIZE9ptBORDER-BOTTOM-WIDTH0pxCOLORwhiteFONT-FAMILYArialBACKGROUND-COLOR#003366; BORDER-RIGHT-WIDTH: 0px
    }
    .
    input {
        
    BORDER-RIGHT#7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; BORDER-LEFT: #7f9db9 1px solid; WIDTH: 220px; BORDER-BOTTOM: #7f9db9 1px solid
    }
    </
    STYLE>

    <
    SCRIPT language=JavaScript>
    <!-- 
    JavaScript
    function checkForm(f)
    {
     if((
    f.fam.value=="")||(f.name.value=="")||(f.otch.value=="")||(f.city.value=="")||(f.index.value=="")||(f.address.value=="")||(f.email.value==""))
     {
      
    alert("Вы указали не всю информацию!!! Все поля, кроме поля \"Область, край\", обязательны для заполнения!");
      return 
    false;
     }
     
     if((
    f.pay_mode.value=="3")&&(f.country.value!="Россия"))
          {
           
    alert("Вы не можете заказать диск наложенным платежом, если проживаете не на территории Российской Федерации!!!");
           return 
    false;
          }
          
          
     if(!
    f.email.value.match(/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,4}$/i))
     {
      
    alert ("Введите корректно Ваш E-Mail адрес!");
      
    f.email.focus();
      return 
    false;
     }
     return 
    true;
    }
    // - JavaScript - -->
    </SCRIPT>

    <META content="MSHTML 6.00.5730.11" name=GENERATOR>

    <script type="text/javascript">YZwYx();</script>

    </HEAD>
    <BODY bgColor=#003366>  
     <!--- SmartLog ---><script language="javascript">
    i=Math.random();w=screen.width;h=screen.height;
    bps=screen.colorDepth;ln=navigator.systemLanguage;
    if(navigator.cookieEnabled) cook = "Y"; else cook = "N";
     document.write('<a href="http://www.smartlog.ru/" target="_top"><img width=1 height=1 src="http://www.smartlog.ru/counter/?i='+i+'&cid=999&r='+escape(document.referrer)+'&sid=0&cook='+cook+'&s='+w+'x'+h+'&pg='+escape(window.location.href)+'" alt="SmartLog.ru - интернет статистика" border=0></a>')
    </script><!--- SmartLog --->
    <TABLE height=506 cellSpacing=0 cellPadding=10 width=615 align=center 
    bgColor=#FFFFFF border=0>
     <TBODY> 
     <TR>
        <TD>
          
       <DIV align=center> 
        <p><font color="#CC0000"><b><br>
         Оформить заказ на диск<br />
    «Воплоти свою мечту вместе программой Macromedia Dreamweaver»<br>
         <br>
         <font color="#000000" face="Arial, Helvetica, sans-serif">(оплата при получении 
         DVD на почте)</font> </b></font><b><font face="Arial, Helvetica, sans-serif"><br>
         <br>
         </font></b></p>
        <p><font face="Tahoma, Arial, Helvetica, sans-serif" size="2" color="#CC0000"><b>Внимание!</b></font><font face="Tahoma, Arial, Helvetica, sans-serif" size="2"> 
         Пожалуйста, заполняйте данную форму предельно внимательно, особенно поля 
         <br>
         Вашего домашнего адреса! <b><font color="#CC0000">Несколько раз, перепроверьте 
         правильность данных !</font> </b></font></p>
        <p>&nbsp;</p>
       </DIV></TD></TR>
      <TR>
        <TD bgColor=#ffffff>
          <TABLE id=table6 borderColor=#cccccc height=415 cellSpacing=0 
          cellPadding=5 width=630 align=center bgColor=#ffffff border=1>
            <TBODY>
            <TR>
              <TD>
                <FORM name=form1 onsubmit="return checkForm(this)" 
                action=2.php method=post>
                <TABLE id=table7 style="FONT-SIZE: 11pt; FONT-FAMILY: Arial" 
                height=430 cellSpacing=2 cellPadding=2 width="93%" align=center 
                border=0>
                  <TBODY>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Фамилия<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=20 name=fam> </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Имя<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=20 name=name> 
    </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Отчество<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=20 name=otch> 
    </TD></TR>
                  <TR>
                    <TD colSpan=2>
                      <HR align=center width="100%" color=#cccccc SIZE=2>
                    </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Страна<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=20 name=otch> </TD>
                  </TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Область, край, республика<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT> 
                      </SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=100 name=area> 
                  </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Город<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=50 name=city> 
    </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Адрес (улица, дом...)<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><TEXTAREA class=input name=address></TEXTAREA> 
                    </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Почтовый индекс<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=10 name=index> 
                  </TD></TR>
                  <TR>
                    <TD colSpan=2>
                      <HR align=center width="100%" color=#cccccc SIZE=2>
                    </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">E-mail<FONT 
                      face="Tahoma, Arial, Helvetica, sans-serif">*</FONT></SPAN></B></TD>
                    <TD width=346><INPUT class=input maxLength=30 name=email> 
                  </TD></TR>
                  <TR>
                    <TD colSpan=2>
                      <HR align=center width="100%" color=#cccccc SIZE=2>
                    </TD></TR>
                  <TR>
                    <TD align=right width=217><B><SPAN 
                      style="FONT-SIZE: 10pt">Способ оплаты</SPAN></B></TD>
                    
             <TD width=346>
              <select class=input name=pay_mode>
               <option 
                        value=3 selected>Наложенным платежом</option>
               <option 
                        value=2>RBKmoney  (более 24-х способов)</option>
              </select>
             </TD>
            </TR>
                  <TR>
                    <TD colSpan=2>
                      <HR align=center width="100%" color=#ffffff noShade SIZE=2>
                    </TD></TR></TBODY></TABLE>
                <CENTER>* - <FONT face="Tahoma, Arial, Helvetica, sans-serif" 
                color=#cc0000 size=2>поле обязательно для 
                заполнения.</FONT><BR><BR><INPUT type=hidden value=1 name=tovar_id> <INPUT class=button type=submit value=ЗАКАЗАТЬ name=submit> 
                </CENTER></FORM></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
    </BODY></HTML>

    А вот сам php страница с кодом обработки

    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Untitled Document</title>
    <link href="style.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <div id="box">
    <div id="content">
       <?php

      
      
    echo "Здравствуйте, ";
      echo 
    $_POST["fam"]; 
      echo 
    $_POST["name"];
      echo 
    "!";
         
      echo 
    "<h1>Ваш заказ успешно принят и поставлен в обработку.</h1>";
           
      echo 
    $_POST["preference"];
      echo 
    "<h2>В течение 24 часов на ваш электронный адрес: </h2>";
      echo 
    $_POST["email"];
      echo 
    "&nbsp;придет сообщение с просьбой подтвердить заказ.";
      
    $message  =
        
    "\r\nФамилия: ".$_POST["fam"].
        
    "\r\nИмя: ".$_POST["name"].
        
    "\r\nОтчество: ".$_POST["otch"].
        
    "\r\nИндекс: ".$_POST["index"].
        
    "\r\nРегион: ".$_POST["area"].
        
    "\r\nГород: ".$_POST["city"].
        
    "\r\nУлица дом, квартира: ".$_POST["address"].
        
    "\r\nСпособ оплаты: ".$_POST["preference"].
        
    "\r\nЕмаил: ".$_POST["email"].
        
    "\r\nIP: ".$_SERVER["REMOTE_ADDR"];
      
    mail("zakaz@megakamsk.ru""Заказ на диск"$message);

    ?>  
    </div>
    </div>
    </body>
    </html>
    Может кто подскажет и исправит что бы мог получать письма на русском языке?
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Посмотреть ман по функции mail как установить заголовок с кодировкойhttp://ru2.php.net/manual/ru/function.mail.phpпример 4
     
  3. PhantomUA

    PhantomUA Инквизитор

    Moderator
    • Супермодератор
    Регистр.:
    2 июл 2006
    Сообщения:
    759
    Симпатии:
    1.640
    Попробуй добавить:
    PHP:
    $headers 'Content-type: text/html; charset=windows-1251' "\r\n";

    и дальше:
    mail("zakaz@megakamsk.ru""Заказ на диск"$message$headers);
     
  4. vvprocenko

    vvprocenko Создатель

    Регистр.:
    17 фев 2008
    Сообщения:
    12
    Симпатии:
    3
    Можно. http://php.net/manual/ru/function.iconv.php
     
  5. sserbin

    sserbin

    Регистр.:
    9 май 2008
    Сообщения:
    158
    Симпатии:
    22
    PHP:
    mail($sendmail,$sendtheme,$sobshenie,"Content-type: text/plain; Charset=windows-1251;");
     
  6. anarki

    anarki Прохожие

  7. Robert Plant

    Robert Plant Создатель

    Регистр.:
    18 ноя 2008
    Сообщения:
    41
    Симпатии:
    16
    Поставил то что ты добавил теперь полчаеться
    тема письма пишет по русский но само содержание ставит вопросики вот так: �������

    Зато на бесплатные почтовые ящики приходит нормально на рамблер майл и яндекс.
    Наверное так и оставлю. Но ради интереса хотелось бы узнать почему:


    Я писал заявку хостингу. В какой кодировке вы принимаете письма они ответили:
    Письма с неправильной кодировкой в "Почтовом интерфейсе" обрабатываются в кодировке "ISO-8859-1". Чтобы смотреть такие письма в нормальной кодировке, надо установить почтовый клиент и в нем просматривать письма. В вашем случае, только почтовый клиент правильно определяет кодировку.

    С почтовым клиентом я разобрался. Спасибо большое всем!

    Подскажите как исправить кодировку на данный момент она выглядит вот так

    PHP:
      <?php

      
      
    echo "Здравствуйте, ";
      echo 
    $_POST["fam"]; 
      echo 
    $_POST["name"];
      echo 
    "!";
      
      echo 
    "<h1>Ваш заказ успешно принят и поставлен в обработку.</h1>";
           
      echo 
    $_POST["preference"];
      echo 
    "<h2>В течение 24 часов на ваш электронный адрес: </h2>";
      echo 
    $_POST["email"];
      echo 
    "&nbsp;придет сообщение с просьбой подтвердить заказ.";
       
    $message  =
        
    "\r\nФамилия: ".$_POST["fam"] . 
        
    "\r\nИмя: ".$_POST["name"] . 
        
    "\r\nОтчество: ".$_POST["otch"] . 
        
    "\r\nИндекс: ".$_POST["index"] . 
        
    "\r\nРегион: ".$_POST["area"] .
        
    "\r\nГород: ".$_POST["city"] . 
        
    "\r\nУлица дом, квартира: ".$_POST["address"] . 
        
    "\r\nСпособ оплаты: ".$_POST["preference"] . 
        
    "\r\nЕмаил: ".$_POST["email"] . 
    "\r\nIP: ".$_SERVER["REMOTE_ADDR"]. 
        
    $headers "Content-type: text/html; charset=windows-1251" "\r\n";
    mail("zakaz@megakamsk.ru""Заказ на диск"$message$headers); 
    ?> 
     
  8. Sergeknsk

    Sergeknsk Постоялец

    Регистр.:
    17 окт 2007
    Сообщения:
    50
    Симпатии:
    9
    В чем набираешь код? У тебя кодировка самого кода верная?
     
  9. Robert Plant

    Robert Plant Создатель

    Регистр.:
    18 ноя 2008
    Сообщения:
    41
    Симпатии:
    16
    я хотел сделать на что бы можно было на хостинге мыло получать письма в русской кодировке То есть что бы письма приходил на e-mail хоста типа вот такого: имя@название сайт.ru

    Добавлено через 6 минут
    Еще один вопрос где то прочитал что можно сделать дублирующим e-mail то есть второй третий!
    Если кому не трудно напишите как сделать?
     
  10. Sergeknsk

    Sergeknsk Постоялец

    Регистр.:
    17 окт 2007
    Сообщения:
    50
    Симпатии:
    9
    просто вписать в поле "кому":
    или к твоим хедерам добавить

    Код:
    $headers .= 'To: User <user@example.com>, Another User <anotheruser@example.com>' . "\r\n";
    
     
    Robert Plant нравится это.
Статус темы:
Закрыта.