|
|
|
| Как отправлять письма в определенной кодировке
P.s. Использую для отправки писем, класс с этого сайта | |
|
|
|
|
|
|
|
для: 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);
?>
|
| |
|
|
|
|
|
|
|
для: Artemy
(16.03.2006 в 10:43)
| | Этого мало.
Нужен Content-Transfer-Encoding (или Quoted-Printable или base64)
И соответствующее преобразование $content | |
|
|
|
|
|
|
|
для: 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>
|
как его изсенить чтоб все было правилбно | |
|
|
|
|
|
|
|
для: CrazyAngel
(16.03.2006 в 10:59)
| | А тут всё нормально. За оформление и отправку отвечает mail_class.php | |
|
|
|
|
|
|
|
для: 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 -> to, htmlspecialchars( stripslashes(trim($this -> subject))),
htmlspecialchars(stripslashes(trim($this -> msg)))))
{
return true;
}else{
return false;
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: CrazyAngel
(16.03.2006 в 11:25)
| | все я решил пробемму
просто отправил заголовок с кодировкой
header("Content-Type: text/html; charset=windows-1251"); | |
|
|
|
|
|
|
|
для: CrazyAngel
(16.03.2006 в 11:31)
| | header() тут ни при чем.
А тип нужно было отправить всяко Content-Type: text/plain; charset=windows-1251 | |
|
|
|