Проблема с mail();

workOnFood

Новичок
Всем доброго дня.

Есть маленький код -
PHP:
$emails = array('[email protected]', [email protected]');

$name = addslashes($_GET['name']);
$tel = addslashes($_GET['tel']);
$comment = addslashes($_GET['comment']);
$url = 'http://сайт.рф'.$_GET['url'];
if ($comment != "")
	$comment = "\nСообщение: ".$comment;

$text = "Имя: ".$name."\nТелефон: ".$tel.$comment."\nURL: ".$url;
$header="Content-Type: text/plain; charset=utf-8
From: сайт.рф <[email protected]>";
foreach($emails as $email){
	$mail = mail($email, 'Сообщение с сайта сайт.рф', $text, $header);
}
$_GET прилетает аяксом со страницы, которая как и эта в utf-8

Код, работает. Письма уходят, но иногда приходят на gmail в таком виде -
----------------------------------------------------------------------------------------------------------------
сайт.рф [email protected]
22:32 (10 ч. назад)

кому: мне
袠屑褟: 翦漕�孝械谢械褎芯薪: 89645248544
URL: http://胁褘谐芯写薪芯械-泻邪褋泻芯.褉褎/芯-泻芯屑锌邪薪懈懈
----------------------------------------------------------------------------------------------------------------
На яндекс почту те же самые письма доходят нормально.
И еще не осуществляется подмена почтового адреса, какой бы я не указывал в заголовках [email protected] , приходит всегда [email protected], не знаю может я отстал от времени и сейчас это нормальная практика?

В ручную баг с иероглифами отловить не удается.
Помогите разобраться.
 

workOnFood

Новичок
Да, и имя сайта пробовал отсылать в заголовках через base64_encode(), ничего не поменялось.

PHP:
$sitename = base64_encode('сайт.рф');
$header="Content-Type: text/plain; charset=utf-8
From: =?utf-8?b?$sitename?= <[email protected]>";
 

workOnFood

Новичок
Люди ну хоть скажите, ченить типа - "код у тебя правильный, проблема с почтовым серваком, где сам думай". Я вовсе не претендую на звание гениального программиста и вполне допускаю что заблудился в трех строчках, тем более что сижу над этим кодом уже второй день и глаз уже явно замылился.
 

workOnFood

Новичок
Выяснил что косячные письма приходят с IE, правда воспроизвести именно такой ужас с китайскими иероглифами не получилось, только обычное в таком случае поведение - исковерканы были только символы сообщений переданных аяксом, а часть письма содержащаяся в php коде пришла нормально. Пробовал IE 7 8. В js поставил encodeURIComponent(), везде где передается кирилица, вроде все нормально пока. В связи с этим вопрос, могла ли исковерканная кодировка переданного сообщения повлиять на текст содержащийся в коде?
 

HEm

Сетевой бобер
запиши в лог-файл значения всех переменных при отправке письма
 

workOnFood

Новичок
Спасибо, так и сделаю. Хотя с момента внесения последних правок косяков пока не было.
 

workOnFood

Новичок
fixxxer
Это понятно. Свой косяк по поводу русского текста передаваемого аяксом я уже осознал. Намного интереснее почему каверкается текст содержащийся в php.
 

fixxxer

К.О.
Партнер клуба
Причем тут аякс?
Прочитай по ссылке как формировать заголовки писем.
Никаких юникодов и прочих кириллиц там быть не может никогда и ни в коем случае.
Это раз.
IDN-ссылки надо кодировать в punycode это два.
 

workOnFood

Новичок
fixxxer
Аякс отправляет заголовки как и при загрузке обычной страницы так и при отправке письма, и как я написал выше именно в этом была проблема. Я подумал вы на это намекаете.
До сих пор все работает нормально.
По поводу юникода не понял. Нельзя отпавлять письма в utf?
Почему не кодировать в base64, если у меня адрес кирилицей используется как имя отправителя?
 

Fort

Новичок
Тема сообщения и все заголовки должны быть закодированая согласно http://tools.ietf.org/html/rfc2047

Попробуйте добавить коддировку utf-8 для ajax объекта запроса
 

tXcode

Умный кодер
workOnFood
Если вопрос еще не решился.

Через какие библиотеки обеспечиваешь ajax?
 
Сверху