Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как отправлять письма в определенной кодировке
 
 автор: CrazyAngel   (16.03.2006 в 10:26)   письмо автору
 
 

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

P.s. Использую для отправки писем, класс с этого сайта

   
 
 автор: Artemy   (16.03.2006 в 10:43)   письмо автору
 
   для: CrazyAngel   (16.03.2006 в 10:26)
 

4 - ым параметром указываете функцие mail() charset=windows-1251\n

Пример:
<?PHP
 
//Тема сообщение, кодируем ее, что бы во всех клиентах нормально отображалась
 
$subject '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject"w","k")).'?=';
 
//HTML письмо с кодировкой Windows - Кириллица
 
@mail($email_to,$subject,$content,"Content-Type: text/html; charset=windows-1251\nFrom: ".$email_from);
 
//или простой текст с кодировкой UTF
 
@mail($email_to,$subject,$content,"Content-Type: text/plain; charset=UTF-8\nFrom: ".$email_from);
?>

   
 
 автор: Trianon   (16.03.2006 в 10:55)   письмо автору
 
   для: Artemy   (16.03.2006 в 10:43)
 

Этого мало.
Нужен Content-Transfer-Encoding (или Quoted-Printable или base64)
И соответствующее преобразование $content

   
 
 автор: CrazyAngel   (16.03.2006 в 10:59)   письмо автору
 
   для: Trianon   (16.03.2006 в 10:55)
 


<?
header
("Content-Type: text/html; charset=windows-1251");
$name=$_GET['name'];
$company=$_GET['company'];
$fio=$_GET['fio'];
$email=$_GET['email'];
$phone=$_GET['phone'];
$n=$_GET['n'];
include(
"./mail_class.php");
 
$mail = new Mail();
//$mail -> to = "topstylus@mail.ru"; 
$mail -> to "info@5d.ru"
    
$mail -> subject "Заказ";
    
$mail -> msg ="Артикул : $name.
        \n ФИО : 
$fio
    \n Емаил : 
$email
    \n Телефон : 
$phone;
    
$mail -> rigorous_email_check 0;
    if(
$mail->send()){
            }else{
        echo(
"error");
    }
    echo(
"<br>");
    
?>
    <html>
<body bgcolor="#ffff00">
<?
    
echo("Ваш заказ отправлен и скоро будет обработан<br>");   
    
?>
    <br>
        </body>
    </html>







как его изсенить чтоб все было правилбно

   
 
 автор: Trianon   (16.03.2006 в 11:03)   письмо автору
 
   для: CrazyAngel   (16.03.2006 в 10:59)
 

А тут всё нормально. За оформление и отправку отвечает mail_class.php

   
 
 автор: CrazyAngel   (16.03.2006 в 11:25)   письмо автору
 
   для: Trianon   (16.03.2006 в 11:03)
 

извиниие


<?php
  
class Mail 
  
{
  
// создаем переменные, в которых хранится содержимое заголовков
  
var $to '';
  var 
$from '';
  var 
$reply_to '';
  var 
$cc '';
  var 
$bcc '';
  var 
$subject '';
  var 
$msg '';
  var 
$validate_email true
  
// проверяет допустимость почтовых адресов
  
var $rigorous_email_check true
  
// проверяет допустимость доменных имен по записям DNS
  
var $allow_empty_subject false
  
// допустимость пустого поля subject
  
var $allow_empty_msg false
  
// допустимость пустого поля msg
    
  
var $headers = array();   
  
/* массив $headers содержит все поля заголовка, кроме to и subject*/
    
  
function check_fields()
    
/* метод, проверяющий, переданы ли все значения заголовков
    и проверку допустимости почтовых адресов */
  
{
    if(empty(
$this -> to))
    {
      return 
false;       
    }
    if(!
$this -> allow_empty_subject && empty($this -> subject))
    {
      return 
false;       
    }
    if(!
$this -> allow_empty_msg && empty($this -> msg))
    {
      return 
false;       
    }
    
/* если есть дополнительные заголовки, помещаем их в массив $headers*/
    
if(!empty($this -> from))
    {
      
$this->headers[] = "From: $this -> from";
    }
    if(!empty(
$this -> reply_to))
    {
      
$this -> headers[] = "Reply_to: $this -> reply_to";
    } 
    
// проверяем допустимость почтового адреса      
    
if ($this -> validate_email)
    {
       if (!
preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i"$this -> to))
       {
          return 
false;
       }
       return 
true;
    }
  }
    
  function 
send()
  
/* метод отправки сообщения */
  
{
     if(!
$this -> check_fields()) return true;
     if (
mail($this -> tohtmlspecialcharsstripslashes(trim($this -> subject))),
        
htmlspecialchars(stripslashes(trim($this -> msg)))))
     {
        return 
true;
     }else{
        return 
false;
     } 
  }
}
?>

   
 
 автор: CrazyAngel   (16.03.2006 в 11:31)   письмо автору
 
   для: CrazyAngel   (16.03.2006 в 11:25)
 

все я решил пробемму
просто отправил заголовок с кодировкой

header("Content-Type: text/html; charset=windows-1251");

   
 
 автор: Trianon   (16.03.2006 в 11:58)   письмо автору
 
   для: CrazyAngel   (16.03.2006 в 11:31)
 

header() тут ни при чем.
А тип нужно было отправить всяко Content-Type: text/plain; charset=windows-1251

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования