Проблем с UTF-8 при изпращане на e-mail

odyssey

Registered
Здраветей! Имам форма, информацията от която изпращам с mail() функция. Сайта е с кодировка UTF-8 и при получаване на съобщението излиза с йероглифи. Идеята че в самата mail() функция за $message имам няколко променливи (няколко полета). Как да се оправи този проблем? Знам, че трябва да се сложи някакъв Content-type и разни други работи, но не знам точно къде и как.

Ето и това за което ви говоря:
Код:
mail("$chosenmail", "Ново съобщение от $imena", [color=red]"Имена на подателя: $imena \r\nОтносно: $otnosno \r\nСъобщение: $message \r\n\r\nДата на изпращане: $datasent\r\n\r\nE-mail на подателя: $email"[/color], "From: $email\r\nReply-to: $email\r\n");
Това, което е с червено на него трябва да му се оправи енкодинга. Но не знам как... Моля помогнете, защото ми е спешно и до утре вечер трябва да е готово!
 
добави това

PHP:
$header="Content-Type: text/html; charset=\"windows-1251\"\n";
към кода си и няма да имаш проблеми :)
 
fors24 каза:
добави това

PHP:
$header="Content-Type: text/html; charset="windows-1251"\n";
към кода си и няма да имаш проблеми :)


Добре а тая променлива като я вкарам в кода после къде да я използвам? Смисъл сигурно някъде в кода който съм дал но къде точно и как?
 
Кода ти трябва да изглежда по този начин :
PHP:
  mail('do kogo',  $tema, $msg,$header,'-f'.ot kogo);

просто замести променливите с твоите и си готов ! :?: :?:
 
fors24 каза:
Кода ти трябва да изглежда по този начин :
PHP:
  mail('do kogo',  $tema, $msg,$header,'-f'.ot kogo);

просто замести променливите с твоите и си готов ! :?: :?:


Добре е човек! Виж кода който аз съм дал и го допиши или добави там както мислиш че трябва да бъде! Защото аз като добавих $header към тоя код който съм дал и даже спря да изпраща.
 
Се на готово чакате значи , ако имаше и на мене кой да ми показва така.. нямаше нужда да уча PHP :D
PHP:
$header="Content-Type: text/html; charset=\"windows-1251\"\n";
mail("$chosenmail", "Ново съобщение от $imena", [color=red]"Имена на подателя: $imena \r\nОтносно: $otnosno \r\nСъобщение: $message \r\n\r\nДата на изпращане: $datasent\r\n\r\nE-mail на подателя: $email"[/color],$header, "From: $email\r\nReply-to: $email\r\n");

това е ако не трагва размени местата ,ако ли пък не си опрости меил() функцията .. това повече за тази тема на готово от мене няма :D :) :D
 
Не се обиждай но нищо не се разбира от кода който си дал. Изкарай си нещата в променливи. Ето ти една работеща поща само трябва да си смениш имената на полетата, ако пък не искаш да я ползваш можеш да видиш къде трябва да поставиш имейл хедъра за да не ти изпраща на маймуница пощата. Успех.

if(isset($_POST['submit'])){

$sendto = "alabala@gmail.com";
$subject = stripslashes($_POST["subject"]);
$email = stripslashes($_POST["email"]);
$tel = stripslashes($_POST["tel"]);
$message = stripslashes($_POST["message"]);
if (empty($subject))
{
echo "<p style=' margin-top:0px; font-size:13px; color:#a00101;'>въведете име</p>";

}
elseif (!preg_match('/[a-z0-9_\.]+@[a-z0-9]+\.[a-z]{2,4}$/', $email))
{
echo "<p style=' margin-top:0px; font-size:13px; color:#a00101;'>няма такъв E-mail $email</p>";
}
elseif(empty($tel))
{
echo "<p style=' margin-top:0px; font-size:13px; color:#a00101;'>въведете телефон</p>";
}
elseif(empty($message)){
echo "<p style=' margin-top:0px; font-size:13px; color:#a00101;'>въведете съобщение</p>";
}
else
{

$email_headers = "From: ".$email."\n"
."Content-Type: text/html; charset=utf-8\n"
."X-Mailer: PHP/".phpversion();

mail($sendto, $subject, $message, $email_headers);

echo "<p style=' margin-top:0px; font-size:13px; color:#a00101;'>съобщението е изпратено успешно</p>";
}
}
 
Благодаря и на двамата! Оправих проблема. Взех по нещо и от двамата, но вложих и доста от себе си за да се справя с проблема и затова мисля да не давам точка на никого, защото трябва да дам и на двамата, а няма как и затова така реших. Още веднъж Ви благодаря!
 

Back
Горе