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

Форум PHP

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

 

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

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

тема: mail () - так всё-же в какой кодировке отправлять?
 
 автор: Fest   (17.08.2009 в 18:31)   письмо автору
 
 

Интернет магазин - отправляется подтверждение заказа клиенту на почту. Кодировка 1251. Outlook - всё нормально, а вот The batt (там по умолчанию koi8-r.) выдает - ъДТБЧУФЧХКФЕ.. Можно ли это как нибудь обойти?

  Ответить  
 
 автор: Trianon   (17.08.2009 в 19:55)   письмо автору
 
   для: Fest   (17.08.2009 в 18:31)
 

Нужно лишь честно указывать кодировку контента и полей заголовка.
И не надеяться на умолчания.

http://rfcs.org
RFC-2822 и сопутствующие 2045, 2046, 2047.

  Ответить  
 
 автор: Sergeich   (17.08.2009 в 20:04)   письмо автору
 
   для: Fest   (17.08.2009 в 18:31)
 

Добавить параметр headers в функцию mail(); такого содержания:
$headers = 'Content-type: text/html; charset=windows-1251' . "\r\n";

  Ответить  
 
 автор: Trianon   (17.08.2009 в 20:35)   письмо автору
 
   для: Sergeich   (17.08.2009 в 20:04)
 

В одиночку клиент имеет право не обратить на него внимание.

  Ответить  
 
 автор: MikeSVB   (19.08.2009 в 03:06)   письмо автору
 
   для: Fest   (17.08.2009 в 18:31)
 

Пользуюсь во такой функцией
<?php

function send_mime_mail($name_from// имя отправителя
                        
$email_from// email отправителя
                        
$name_to// имя получателя
                        
$email_to// email получателя
                        
$data_charset// кодировка переданных данных
                        
$send_charset// кодировка письма
                        
$subject// тема письма
                        
$body // текст письма
                        
) {
  
$to mime_header_encode($name_to$data_charset$send_charset)
                 . 
' <' $email_to '>';
  
$subject mime_header_encode($subject$data_charset$send_charset);
  
$from =  mime_header_encode($name_from$data_charset$send_charset)
                     .
' <' $email_from '>';
  if(
$data_charset != $send_charset) {
    
$body iconv($data_charset$send_charset$body);
  }
  
$headers "From: $from\r\n";
  
$headers .= "Content-type: text/plain; charset=$send_charset\r\n";

  return 
mail($to$subject$body$headers);
}

function 
mime_header_encode($str$data_charset$send_charset) {
  if(
$data_charset != $send_charset) {
    
$str iconv($data_charset$send_charset$str);
  }
  return 
'=?' $send_charset '?B?' base64_encode($str) . '?=';
}

?>


код вызова

<?php
send_mime_mail
('Автор письма',
               
'sender@site.ru',
               
'Получатель письма',
               
'recepient@site.ru',
               
'CP1251',  // кодировка, в которой находятся передаваемые строки
               
'KOI8-R'// кодировка, в которой будет отправлено письмо
               
'Письмо-уведомление',
               
"Здравствуйте, я Ваша программа!");
?>


**********************
Не моё. нашёл в интернете.

  Ответить  
 
 автор: serjinio   (19.08.2009 в 07:32)   письмо автору
 
   для: MikeSVB   (19.08.2009 в 03:06)
 

$nic = iconv("utf-8", "koi8-r", 'Администрация');
$site ='site.ru';
    $headers = "MIME-Version: 1.0\r\n";
    $headers.= "Content-type: text/html; charset=utf-8\r\n";
    $headers.= "From: ".$nic.$site." \r\n";
$subject= "=?utf-8?B?".base64_encode("Потвеждение регистрации на сайте ".$site. "!")."?=";    

гугле ,майлру писемнет и еще несколько хостинговых майлов принимает в правильной кодировке

  Ответить  
Rambler's Top100
вверх

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