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
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
2010-02-15 13:08
Dzięki boboo za sugestie, doszedłem do tego.
k975
benek33333
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";
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