Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: пхп-скрипт отправляет письма кракозябрами. используется sendmail

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: в который раз...
cyklop77
Отправлено: 09 Сентября, 2010 - 23:10:38
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




помогите пожалуйста разобраться.
пытаюсь из пхп-скрипта отправить. сендмаил настроен. отправляю следующим скриптом:
Цитата:
http://www.internet-technologies.ru/articles/article_1361.html


сама пхп-страница в кодировке uft-8 (без BOM). ну и текст, который передаю(кириллические символы) соответственно тоже. в скрипте в нужных местах. в результате кодирую из uft-8 в koi8-r. принимаю аутлуком и наблюдаю кракозябры в тексте писма и в теме. адрес отправителя(или текст, который можно вместо него поставить) передается как и задумано русскими буквами.
отчего так происходит? ведь перекодирую все одними и теми же функциями... пробовал так же кодировать из utf-8 в windows-1251 и в другие кодировки. нужного результата так и не добился.

так же пробовал вот таким скриптом отправить письмо:

PHP:
скопировать код в буфер обмена
  1. $subj = "Заявка на дополнительное тестирование линии";
  2. $subject = '=?koi8-r?B?'.base64_encode($subj).'?=';
  3. $headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=koi8-r\r\n";
  4. $headers .= 'From: =?Windows-1251?B?'.base64_encode('Форма за').'?= <weer@m.ru>' . "\r\n";
  5.  
  6.  
  7. $body='=?koi8-r?B?'.base64_encode(convert_cyr_string($subject_send, "w","k")).'?=';
  8. mail('sn@t.ru',$subject,$body, $headers);


здесь дело получше обстоит. русскими буквами отображаются тема и адрес отправителя. текст письма опять кракозябрами.

подскажите где искать правильное решение - чтобы получить письмо с русским текстом полностью.

в архиве форума находил много подобных тем. но в них как то все разрешалось счастливо. я кажется использую те же самые подходы - и iconv, и .base64_encode, и прочее. но не помогает...
 
 Top
Uchkuma
Отправлено: 10 Сентября, 2010 - 08:25:05
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Если у вас текст в utf-8, зачем тогда кодируете из windows в koi?
 
 Top
cyklop77
Отправлено: 10 Сентября, 2010 - 11:37:26
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Uchkuma пишет:
Если у вас текст в utf-8, зачем тогда кодируете из windows в koi?


ну да. если он в utf-8, то лучше бы с ним вообще ничего не делать, а просто отправить. но даже в этом случае кракозябры приходят, поэтоту приходится шаманить подобным образом. так хоть тема письма русскими буквами написана...
 
 Top
Uchkuma
Отправлено: 10 Сентября, 2010 - 12:06:03
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




cyklop77, вы вообще поняли, что я вас спросил? Если вам надо перевести с немецкого, зачем вы берете англо-русский словарь?
Данная строка это кодирование текста письма, а не темы.
 
 Top
JustUserR
Отправлено: 10 Сентября, 2010 - 13:53:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




cyklop77 пишет:
Подскажите где искать правильное решение - чтобы получить письмо с русским текстом полностью
Средства интерфейса MIME позволяют проводить кодирования текста в любой кодовой таблице в специальный 7bit-ный вид для универсальной передачи его по тектовым протоколам - но при этом необходимо учитывать чтобы кодировка в которой трактуется внутренее представление строки с текстом и ее последующая передача была правильно Кроме того body-раздел в котором пересылается основной текств в e-mail-сообщении принииципильно отличается от RFC-заголовок с адреосм отправителя и темой - в частности он не обязан быть представлен в 7bit-ной форме и его кодовая таблица задается специальным заголовком Content-type Если вы хотите использовать механизм классического MIME-кодирования и для body-секции сообщения - то вы должны передавать ее в специальной 7bit-форме и передавать дополнительный RFC-заголовок Content-Transfer-Encoding для инкапсулированных данных этой секции
Более подробную информацию вы можете посмотреть здесь http://tools[dot]ietf[dot]org/html/rfc2045#page-8


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Shkur
Отправлено: 23 Декабря, 2010 - 12:26:18
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




 
 Top
JustUserR
Отправлено: 24 Декабря, 2010 - 13:59:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Shkur пишет:
imap_mime_header_decode()
Использование приведенной вами функции для осуществления решения оригинальной задачи не является корректным вариантом - поскольку представление информационный полей в кодовой таблице не соответствующей их оригинальному внутреннему хранению производится на клиентской стороне - для которых их выполнение не является возможным Кроме того реальной причиной обеспечения получения данных с трактованием в некорректной кодовой таблице связано с применением механихма кодирования - не совпадающего с ожидаемым управляющем кодом для данного информационного поля - что в данном случае может контролироваться поредством элементом RFC-заголовков таких как Content-Type и Conent-Transfer-Encoding


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB