Brak polskich znaków w mailu z potwierdzeniem

k975

No avatar

2010-02-14 22:17

Witam,
Używam Quick Cart v3.5 i plugina SendOrderToClient v0.6. W mailu z potwierdzeniem zamówienia do klienta i do admina nie wyświetlają się polskie znaki (tzn. zamiast Ą jest A itd). Co należy zmodyfikować, żeby rozwiązać ten problem? Pozdrawiam

» Quick.Cart v3.x

k975

boboo

Avatar: boboo

2010-02-15 08:44

w pliku /core/common.php jest funkcja "sendEmail",
a w niej takie polecenie:
$sMailContent = change2Latin( $sMailContent );
powoduje ono zmianę literek polskich na "lacinskie" z "łacińskich" ;-)
wyrzuć tę linijkę i problem... prawie z głowy. Bo nie każdy klient e-mail będzie wiedział, że ma teraz do czynienia z UTF-8. Przy przełączaniu manualnym (widok, kodowanie) pięknie widać w Outlooku wszystkie "ąęćńśłóźż" itd, ale tu chodzi o automatykę, bo od tego jest ten komputer, nieprawdaż? Dlatego informację o kodowaniu literek (charset=UTF-8) musisz umieścić w headerze e-maila, aby klient e-maila sam się przełączył. Ale zadanie domowe: "jak jest zbudowany e-mail, co to jest header i inne jego składniki" musisz już odrobić sam.

daję wędkę, nie rybę.

k975

No avatar

2010-02-15 13:08

Dzięki boboo za sugestie, doszedłem do tego.

k975

benek33333

No avatar

2010-02-26 17:39

Dorzucę coś od siebie.
Maila wysyła się funkcją o parametrach:
( $sTargetEmail, $sTopic, $sMailContent, $headers )

Trzeba zadać przed funkcją:
$headers = "MIME-Version: 1.0'\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8\r\n";
$headers .= "From: $sSender\r\n";

sprintserwis

Avatar: sprintserwis

2010-04-07 15:01

To i ja dorzucę coś od siebie, bo pozostaje jeszcze kodowanie tematu wiadomości.
Ja rozwiązałem to tak:
$sTopic = "=?UTF-8?B?".base64_encode($sTopic)."?=";
ale można też inaczej; sposób zaczerpnąłem z:
http://mynthon.net/articles/php/php_mail

Back to top
about us | contact