Autor Zpráva
AM_
Profil
Zdravím,
narazil jsem na divnou věc v PHPMaileru.
Soubory mám kódované ve windows-1250, proto při inicializaci PHPMaileru nastavím $mail->CharSet="windows-1250", nacpu do něj odesilatele, předmět, tělo zprávy a odešlu.
Donedávna vše šlapalo jak hodinky, ale dnes si jeden uživatel stěžoval, že mu zpráva došla s rozbitým jménem odesílatele (místo Tomáš přišlo Tomá). První mě napadlo, že jsem něco pohnojil v kódování hlaviček, tak jsem si zobrazil zdrojové kódy některých mailů, které mi z tohoto systému chodí, a odtud to začíná být divné - hlavičky jsou tam kódované iso-8859-2 popř. us-ascii
Příklad:
To: =?us-ascii?Q?Jmeno=20Prijmeni?= <...@seznam.cz> (jméno bez diakritiky)
Reply-To: =?iso-8859-2?Q?Ale=B9=20?= <...@seznam.cz> (jméno s diakritikou)
Je možné, že SMTP servery po cestě mi změní kódování hlaviček? PHPMailer je v tom podle mě nevině, procházel jsem jeho kód a vypadá, že do hlavičky vždy dosazuje kódování těla zprávy.
Případně setkal jste se někdo s podobným problémem a jak jste ho řešili? pořád mi nejde do hlavy, proč to komusi přišlo ve špatném kódování; já mám vše ve win-1250 a tak to taky phpMaileru předávám, tak nevím, co se kde mohlo polámat.
Davex
Profil
Odesílej všechna pole ve stejném kódování nebo v us-ascii. Některé poštovní servery (např. Lotus Domino a starší MS Exchange) mohou mít problém se zpracováním e-mailu v různých kódováních a potom jsou schopny totálně pohnojit i tělo zprávy a české znaky nahradí třeba čínskými.

Poštovní servery v případě potřeby mění způsob kódování z 8 bitového na Quoted Printable, ale tato změna by neměla ovlivňovat diakritiku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0