Přihlásit
: [1]
   |   
: Nastavení charsetu předmětu odeslaného mailu z PHP  ( 3627 )
Orinh
Newbie
*

Karma: 0
: 6


« : August 28, 2009, 15:17:37 »

Zdravím všechny,

nastavuji Mandrivu 2007 pro odesílání mailů z php. Po instalaci postfix a jeho nastavení php email odchází a je bez problémů doručen.

Problém mám s kódováním u pole subject. Vždy se tam samo přidá ?us-ascii?Q a já tam chci používat UTF-8. Moje definované kódování je tedy chápáno už jako text předmětu zprávy.

Odhaduji, že to způsobuje sendmail, ale netuším kde a co změnit. Hledal jsem v man, ale nebyl jsem úspěšný.

Děkuji za každé nasměrování...
« : August 28, 2009, 15:23:08 Orinh »
strublos
Sr. Member
****

Karma: 9
: 336



« #1 : September 06, 2009, 16:10:42 »

Ja odesilam takto emaily z php.

$subject = "žluťoučký kůň";
$subject = "=?utf-8?B?".base64_encode($subject)."?=";
$email = "nekdo@nekde.cz";
$zprava = "text emailu";
mail($email, $subject, base64_encode($zprava) , "From: admin@admin.cz\r\nMIME-Version: 1.0\r\nContent-Type: text/html; charset=utf-8;\r\nContent-Transfer-Encoding: base64\r\n");
Orinh
Newbie
*

Karma: 0
: 6


« #2 : October 27, 2009, 13:18:10 »

Děkuji je to vyřešeno. Uvedená ukázka pracovala bez problémů. Používal jsem velice podobný kód a tak jsem pátral kde je chyba. Nakonec za to mohla nekorektní definice předmětu zprávy (ukončení znaky "?="). Nekorektní subject byl při odeslání opraven včetně výchozího kódování na us-ascii.

Ukázka kterou jsem získal někde na internetu obsahovala tento problémový řádek:
:
$subject = "=?utf-8?B?".base64_encode($subject)."\r\n"

Po nahrazení "\r\n" na "?=" to bylo v pořádku.
: [1]
   |   
 
: