ugrás a tartalomhoz

mail() fejléc-probléma

pkadam · 2011. Aug. 2. (K), 17.42
Sziasztok!

E-mailt küldenék a PHP-vel a megszokott módon, de az ügyfél szervere mintha nem értelmezné a \r\n elválasztásokat (legalábbis hibásan). Ha csak feladót, vagy csak karakterkódolást állítok be, semmi gond, de már a 'From: felado##kukac##example.com' . "\r\n" fejléc esetén összeomlik minden. Konkrétan a levélben a megadott feladói cím helyett ezt látom:

felado##kukac##example.com X-MIMETrack: Itemize by SMTP Server on eposta1/[szervernév] (Release 7.0.1|January 17, 2006)at 2011.08.02 16:49:06;Serialize by Router on eposta1/[szervernév] (Release 7.0.1|January 17, 2006)at 2011.08.02 16:49:07;Serialize complete at 2011.08.02 16:49:07

Ez mind a név mezőben, az e-mail cím helyett pedig két pontosvessző figyel. A levél tárgyában pedig az üzenet elé ezt rakja be:

Message-Id: <20110802144901.F29691BC7AD##kukac##web_int.[hosztnév].hu>
Date: Tue, 2 Aug 2011 16:49:01 +0200 (CEST)


Ha a fejléc 'From: felado##kukac##example.com' . "\r\n" . 'Reply-To: felado##kukac##example.com' (hátha az indokolatlan sortöréssel van gond), akkor annyi változik, hogy a levél szövegében a "Message_Id: ..." elé kapok egy "Reply-To: webmaster##kukac##example.com" sort is.

Amennyiben 'Content-Type: text/plain; charset=UTF-8' . "\r\n" . 'From: felado##kukac##example.com' a fejléc, akkor majdnem minden jó, a levél szövegében már csak az üzenet van (helyes kódolással), de a feladó címéhez ez kerül így egybe:

www-data##kukac##portal2.[hosztnév].hu;felado##kukac##example.com;

(Sőt, ez levelezőkliensenként még el is tér... A Windows Live Mail a fentit adja ki, a SquirrelMail és a RoundCube csak az általam megadottat, míg a Horde csak a "gyárit".)

Csavar: ha megcserélem a fejléc adatait, tehát 'From: felado##kukac##example.com' . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' van megadva, akkor megint "összeomlás", ott kötök ki, ahol a legelején.

Számtalan sorrendet ill. fejléctípust kipróbáltam már, és az elküldött levelek forrását megvizsgálva, ha nem a From-mal kezdek, akkor kétszer kerül definiálásra a feladó, ez okozza a többszörös feladós zavart. Viszont, ha a From-mal kezdek, teljesen zavaros lesz a feladó mező és a többi fejlécet sem értelmezi...

Hol a hiba?

Előre is köszönöm mindenkinek!
 
1

Bingó

pkadam · 2011. Aug. 3. (Sze), 13.44
És megvan a hiba forrása, egész egyszerűen szembe kellett mennem azzal a "szabvánnyal", amit szinte az összes létező forrásban írnak. És a szerver csak azzal a módszerrel eszi meg, legyenek a fejlécek bármilyen sorrendben is. Hamarosan megírom, de kíváncsi vagyok, hogy találkozott-e bárki hasonló jelenséggel, vagy felmerül-e megoldási javaslatként.

UPDATE: A megoldás pedig az, hogy a fejlécek közti \r\n elválasztók helyett mindössze \n-t kell írni, és minden gond azonnal megoldódik.