Właśnie napisałem sobie skrypt obsługujący formularz.
I ...
Problem.
Treść maila (ponieważ formularz + załącznik są wysyłane mailem) jest poprawnie kodowana pod względem polskich znaków diakrytycznych, ale nazwa nadawcy i tytuł wiadomości już nie.
Moje pytanie, czy ktoś wie w czym tkwi problem?
Załączam treść skryptu:
KOD
<?='<?xml version="1.0" encoding="ISO-8859-2"?>' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"><head>
<link rel="shortcut icon" href="fiege.ico" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>Dziękujemy z wysłanie zgłoszenia - Dział IT *** Sp.z o.o.</title>
<style type="text/css"><!--
body { font-family:arial; font-size:13px; text-align:center; background:white url(tlo.gif) fixed;}
.srodek {
position: absolute;
height: 200px;
width: 250px;
margin-top: -100px;
margin-left: -100px;
top: 50%;
left: 50%;
border:1px solid black;
}
--></style>
</head>
<body>
<?
srand((double)microtime()*1000000);
$znacznik = md5(uniqid(rand()));
// dane o odbiorcy, nadawcy
$odbiorca="****@gmail.com";
$tytul=" Zgłoszenie do Działu IT";
$nadawca_imie = "$imie "."$nazwisko";
$nadawca_email = "$adres";
// treść listu
$tresclistu = "
ZGŁOSZENIE DO DZIAŁU IT
============================================================
Zgłoszono następujący problem:
" . $_POST["pole1"]."
============================================================
Problem miał miejsce w: " . $_POST["lokalizacja"]."
============================================================
Opis załącznika (opcjonalne):
".$_POST["opis"]."
============================================================
Zgłoszenie wysłał:
$nadawca_imie
tel.: " . $_POST["telefon"]."
" . $_POST["lokalizacja"]."
";
// definicja nagłówków
$naglowki = "From: $nadawca_imie <$nadawca_email>\n";
$naglowki .= "MIME-Version: 1.0\n";
$naglowki .= "Content-Type: multipart/mixed;\n";
$naglowki .= "\tboundary=\"___$znacznik==\"";
$naglowki .= "Content-Type: text/plain;\n";
$naglowki .= "\tcharset=\"iso-8859-2\"\n";
$naglowki .= "Content-Transfer-Encoding: 8bit\n";
// nagłówki listu
$tresc="--___$znacznik==\n";
$tresc .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
$tresc .="Content-Transfer-Encoding: 8bit\n";
$tresc .="\n$tresclistu\n";
// nagłówki i obsługa załącznika
$plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
$plik_wielkosc = $_FILES["plik1"]["size"];
if (is_uploaded_file($plik_nazwa_tmp)) {
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: image/gif\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb");
$dane = fread($f,filesize($plik_nazwa_tmp));
fclose($f);
$tresc .= chunk_split(base64_encode($dane));
$tresc .="--___$znacznik==--\n";
}
// wysłanie listu
mail($odbiorca,$tytul,$tresc,$naglowki);
?>
<table class="srodek"><tr>
<td style="vertical-align:middle; text-align:center;">
Dziękujemy,<br />Zgłoszenie znajduje się już na skrzynce IT.<br />
Aktualnie pracujemy nad rozwiązaniem Twojego problemu.<br />
Niedługo skontaktujemy się z Tobą.<br /><br /><input type="button" value="Powrót do formularza"
onclick="window.location='http://***.***/'" />
</td>
</tr></table>
</body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"><head>
<link rel="shortcut icon" href="fiege.ico" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>Dziękujemy z wysłanie zgłoszenia - Dział IT *** Sp.z o.o.</title>
<style type="text/css"><!--
body { font-family:arial; font-size:13px; text-align:center; background:white url(tlo.gif) fixed;}
.srodek {
position: absolute;
height: 200px;
width: 250px;
margin-top: -100px;
margin-left: -100px;
top: 50%;
left: 50%;
border:1px solid black;
}
--></style>
</head>
<body>
<?
srand((double)microtime()*1000000);
$znacznik = md5(uniqid(rand()));
// dane o odbiorcy, nadawcy
$odbiorca="****@gmail.com";
$tytul=" Zgłoszenie do Działu IT";
$nadawca_imie = "$imie "."$nazwisko";
$nadawca_email = "$adres";
// treść listu
$tresclistu = "
ZGŁOSZENIE DO DZIAŁU IT
============================================================
Zgłoszono następujący problem:
" . $_POST["pole1"]."
============================================================
Problem miał miejsce w: " . $_POST["lokalizacja"]."
============================================================
Opis załącznika (opcjonalne):
".$_POST["opis"]."
============================================================
Zgłoszenie wysłał:
$nadawca_imie
tel.: " . $_POST["telefon"]."
" . $_POST["lokalizacja"]."
";
// definicja nagłówków
$naglowki = "From: $nadawca_imie <$nadawca_email>\n";
$naglowki .= "MIME-Version: 1.0\n";
$naglowki .= "Content-Type: multipart/mixed;\n";
$naglowki .= "\tboundary=\"___$znacznik==\"";
$naglowki .= "Content-Type: text/plain;\n";
$naglowki .= "\tcharset=\"iso-8859-2\"\n";
$naglowki .= "Content-Transfer-Encoding: 8bit\n";
// nagłówki listu
$tresc="--___$znacznik==\n";
$tresc .="Content-Type: text/plain; charset=\"iso-8859-2\"\n";
$tresc .="Content-Transfer-Encoding: 8bit\n";
$tresc .="\n$tresclistu\n";
// nagłówki i obsługa załącznika
$plik_nazwa_tmp = $_FILES["plik1"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik1"]["name"];
$plik_wielkosc = $_FILES["plik1"]["size"];
if (is_uploaded_file($plik_nazwa_tmp)) {
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: image/gif\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb");
$dane = fread($f,filesize($plik_nazwa_tmp));
fclose($f);
$tresc .= chunk_split(base64_encode($dane));
$tresc .="--___$znacznik==--\n";
}
// wysłanie listu
mail($odbiorca,$tytul,$tresc,$naglowki);
?>
<table class="srodek"><tr>
<td style="vertical-align:middle; text-align:center;">
Dziękujemy,<br />Zgłoszenie znajduje się już na skrzynce IT.<br />
Aktualnie pracujemy nad rozwiązaniem Twojego problemu.<br />
Niedługo skontaktujemy się z Tobą.<br /><br /><input type="button" value="Powrót do formularza"
onclick="window.location='http://***.***/'" />
</td>
</tr></table>
</body></html>
Dodatkowo dodam, ze korzystam z PSPad (kodowanie ISO 8859-2), a poczta na której to testuje to GMAIL over http.
Dzięki z góry