Малко хелп за feedback form с php.

shebek

Registered
Здравейте, искам да си направя feedback форма с php, попаднах на някакъв примерен урок и ми се вижда доста просто, но нещо не сработва при мен.

http://www.thesitewizard.com/archive/feedbackphp.shtml

Общо взето разбирам, че трябва да сложа този код в feedback.html

Код:
<form method="post" action="sendmail.php">
  Email: <input name="email" type="text" /><br />
  Message:<br />
  <textarea name="message" rows="15" cols="40">
  </textarea><br />
  <input type="submit" />
</form>

и този код в sendmail.php

Код:
<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

  mail( "yourname@example.com", "Feedback Form Results",
    $message, "From: $email" );
  header( "Location: http://www.example.com/thankyou.html" );
?>

Смених yourusername@example.com с моя мейл, но не получавам мейли незнайно защо.
 
Разбира се, от конзола ти пращам и получавам мейли без проблеми, даже мога да се su като www-data за теста.
 
Код:
Feb  9 15:28:09 debian postfix/local[11014]: 20A6199BA8: to=<d3v1ous@d3v1ous.info>, relay=local, delay=15, delays=4.3/0.02/0/11, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)
 
Вече проблема се свежда до екнодинг-а. Накарах го да работи и да праща мейли, но когато пиша на български, на мейла получавам маймуница.

head на html-a изглежда така:

Код:
<meta content="text/html; charset=UTF-8" http-equiv="content-type">

скрипта за изпращане на мейли изглежда така:

Код:
<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

if (mail( "d3v1ous@d3v1ous.info", "Feedback Form http://mail-lists.co.cc", $message, "From: $email")) {
  echo("<p>Message successfully sent!</p>");
 } else {
  echo("<p>Message delivery failed...</p>");
 }
?>


Може ли малко хелп как да фиксна това?
 
Код:
<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;
  $headers = "Content-type: text/html; charset=windows-1251 \n";

if (mail( "d3v1ous@d3v1ous.info", "Feedback Form http://mail-lists.co.cc", $message, "From: $email")) {
  echo("<p>Message successfully sent!</p>");
 } else {
  echo("<p>Message delivery failed...</p>");
 }
?>

никакъв ефект
 
Щом ти е utf-8 метата направи и мейла utf-8.

<?php
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;
$headers = "Content-type: text/html; charset=utf-8 \n";

if (mail( "d3v1ous@d3v1ous.info", "Feedback Form http://mail-lists.co.cc", $message, "From: $email", $headers)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}
?>
 
Значи в момента се логнах в мейла си през оутлук и забелязах, че самия енкодинг на писмото е Western-8859-1. От друга страна се логнах през конзолата, която съм си я сетнал на UTF-8 и там мейла се чете нормално... идеи.
 
Даже в момента гледам phpinfo:

default_charset UTF-8 UTF-8
default_mimetype text/html text/html

въпро е защо глупавия мейл пристига в различен от UTF-8 encoding, явно проблема е в самата mail() функция на php
 

Back
Горе