AnalyzerHQ Fórum

 

Szerző Téma: mail ékezetes subjecttel  (Megtekintve 2113 alkalommal)

0 Felhasználó és 1 vendég van a témában

2010. március 5. - 11:55:34
  • Kölyök tag
  • **
  • Hozzászólások: 21
  • Karma: 2

PHP-ből a mail függvénnyel szeretnék levelet küldeni úgy, hogy a Subject: sorban ékezetek is lennének ("Megrendelés ... ügyfél neve). Az ékezetek viszont nem jelennek meg helyesen, hanem "é" van pl. az "é" helyén. A levél törzsében egyébként minden ékezet jó. Mit rontok el?


$megrendeles_header="From: SHOP <megrendeles@shop.hu>\n";
$megrendeles_header.="Reply-To: megrendeles@shop.hu\n";
$megrendeles_header.="Content-Type: text/plain; charset=utf-8\n";
$megrendeles_header.="Content-Disposition: inline\n";
$megrendeles_header.="Content-Transfer-Encoding: 8bit\n";

$megrendeles_subject = "Új megrendelés #".$megrendeles_id." / ".$megrendelo_neve;

mail("megrendeles@shop.hu",$megrendeles_subject,$megrendeles_body,$megrendeles_header);


2010. március 6. - 10:29:13
Válasz #1
  • Kölyök tag
  • **
  • Hozzászólások: 25
  • Karma: 2

Lehet, hogy itt a gond: "Content-Transfer-Encoding: 8bit\n"

Én így mail -ezek egyszerűen:
$to = "";
$subject = "";
$message = "";
$comment = "";

mail($to, $subject, $message, $comment);


2010. március 6. - 22:10:08
Válasz #2
  • Kölyök tag
  • **
  • Hozzászólások: 21
  • Karma: 2

Ez a Content-Transfer-Encoding sor már utólag került bele, de nem segített. Ha a $subject változóban is van ékezet, akkor levelezőben normálisan látszik nálad?


2010. március 7. - 15:19:15
Válasz #3
  • Kölyök tag
  • **
  • Hozzászólások: 25
  • Karma: 2

Eddig csak a citromail fiókomra küldettem email-t ,ott minden látszik rendben.


2010. március 7. - 20:21:39
Válasz #4
  • MadAdmin
  • Teljes tag
  • ***
  • Hozzászólások: 104
  • Karma: 6
    • MadAdmin.com

Az e-mail fejlécekben nem lehetnek ékezetes formában karakterek, mert ezek kívül esnek a 7 bites tartományon. Tehát 7 bitesre kell alakítani a subjectet is, ahhoz, hogy minden SMTP szerveren biztosan átmenjen. A megfelelő encoding/decoding nem okozhat gondot a szabvány szerinti levelezőknek.

Pl. így lehet 7 bitessé alakítani nálad a subject stringet:

$megrendeles_subject = "=?UTF-8?B?".base64_encode($megrendeles_subject)."?=";

Ez nekem mail() esetén nem működött rendesen, de mb_send_mail() esetén igen. Esetleg az mb_encode_mimeheader() függvénnyel is lehet játszani, de nekem egy konkrét esetben a fenti megoldás adott jó eredményt.



2010. március 9. - 10:21:20
Válasz #5
  • Kölyök tag
  • **
  • Hozzászólások: 47
  • Karma: 5

Ékezetekkel nem sokan foglallkoznak e-mail subjectben. Én rendszeresen kapok gagyin összerakott e-maileket nagyobb cégektől is (pl. fotórendelésnél), amiknél azért nem értem miért nem oldják meg normálisan. Lehet el kellene nekik is küldeni a megoldást? :)