jesteś w: Główna > PHP > PHP: mail
Ostatnia aktualizacja tej strony: 2022-03-28, 21:03:28

PHP mail

Dokument .php kodowany ISO-8859-2

Standardowa funkcja wysyłania maila przez PHP ale z dodanym konwertowaniem znaków z utf-8 na iso-8859-2. Przydatne np. przy przetwarzaniu i wysyłaniu maila z Flasha. W przykładzie jest zmiana znaków dla treści i tematu, ale można też zmienić dla pozostałych rzeczy. Jeśli są problemy z wysłaniem maila należy spróbować wyrzucić \r z każdej linii.

$odKogo=""; // e-mail nadawcy
$imie=""; //imie nadawcy
$doKogo=""; //adres odbiorcy
//nagłówki maila
$headers = "Return-Path: <mail_zwrotny>\r\n";
$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-2 \r\n";
$headers .= "From: \"$odKogo\" <mail_odKogo>\r\n";
$headers .= "Reply-To: \"$odKogo\" <mail_reply_DoKogo>\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
//konwertowanie z utf-8 na iso 8859-2
$tresc = stripslashes($tresc);
$tresc = strtr($tresc, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
$temat = stripslashes($temat);
$temat = strtr($temat, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
//wysyłanie maila
mail("$doKogo", "$temat","$tresc",$headers);

Skrypcik znaleziony na forum http://www.flashroom.com

Dokument .php kodowany UTF-8

W przypadku takich dokumentów wszystko działa poprawnie, ale miałem problem z tematem, który nie był kodowany poprawnie. Z powodu kodowania dokumentu php w UTF-8 reszta dokumentu nie wymagała żadnych modyfikaji (nagłówki też nie, chociaż to dziwne). Złe kodowanie tematu, rozwiązał taki skrypt:

function mail_escape_header($subject){
  $subject = preg_replace('/([^a-z ])/ie', 'sprintf("=%02x",ord(StripSlashes("\1")))', $subject);
  $subject = str_replace(' ', '_', $subject);
  return "=?utf-8?Q?$subject?=";
}

i adresik do źródła: http://code.iamcal.com/php/utf8_mail/readme.txt

Prawidłowo kodowany temat z użyciem PHP - metoda 2

W poniższym przykładzie zamiast UTF-8 można wstawić np.: ISO-8859-2 i też będzie działało. Przykład z http://www.webdiary.pl/technologie+art.id+40.htm

<?php
  $subject = "=?UTF-8?B?".base64_encode($subject)."?=";
?>

Menu

Działy:

Quick start:

Inne:

animacje Flash

Diablo 2: