lukaschemp 27 Zgłoś post Napisano Listopad 30, 2011 Witam, Czy ktoś naprawiał polskie znaki w mailach z/do osTicket? Mam piękne krzaczki ÄÅóÄÅºÄ Sprawdzałem kilka sposobów z forum osTicket, ale nic nie działa. Baza jest kodowana w UTF-8. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Listopad 30, 2011 Ja dostajesz maila z osTicket to jaki jest charset w nagłówku Content-Type:? Udostępnij ten post Link to postu Udostępnij na innych stronach
lukaschemp 27 Zgłoś post Napisano Listopad 30, 2011 (edytowany) X-Mailer: osTicket v 1.6 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable @edit Utworzyłem ticket przez formularz WWW i są polskie znaki w mailu i w panelu, więc problem leży tylko po stronie "email piping" gdy wysyła się bezpośrednio wiadomość na adres e-mail po czym jest on przetworzony na ticket. Edytowano Listopad 30, 2011 przez lukaschemp (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Listopad 30, 2011 Wygląda dobrze, ja bym szukając gdzie się pojawia błąd w miejscu gdzie wywoływana jest funkcje wysyłająca maila wyrzucił bym treść na ekran i zobaczył czy tam już jest źle. Krzaki są i w treści i temaci ? Udostępnij ten post Link to postu Udostępnij na innych stronach
lukaschemp 27 Zgłoś post Napisano Listopad 30, 2011 Tak, w treści i w temacie. Plik pipe.php [..] require_once(INCLUDE_DIR.'class.mailparse.php'); require_once(INCLUDE_DIR.'class.email.php'); [..] $var=array(); $deptId=0; $name=trim($from->personal,'"'); if($from->comment && $from->comment[0]) $name.=' ('.$from->comment[0].')'; $subj=utf8_encode($parser->getSubject()); if(!($body=Format::stripEmptyLines($parser->getBody())) && $subj) $body=$subj; $var['mid']=$parser->getMessageId(); $var['email']=$from->mailbox.'@'.$from->host; $var['name']=$name?utf8_encode($name):$var['email']; $var['emailId']=$emailId?$emailId:$cfg->getDefaultEmailId(); $var['subject']=$subj?$subj:'[No Subject]'; $var['message']=utf8_encode(Format::stripEmptyLines($body)); $var['header']=$parser->getHeader(); $var['pri']=$cfg->useEmailPriority()?$parser->getPriority():0; [..] i to wszystko co widzę odnośnie kodowania. W plikach include'owanych: Plik: class.email.php [..] //do some cleanup $eol="\n"; $to=preg_replace("/(\r\n|\r|\n)/s",'', trim($to)); $subject=stripslashes(preg_replace("/(\r\n|\r|\n)/s",'', trim($subject))); $body = stripslashes(preg_replace("/(\r\n|\r)/s", "\n", trim($message))); $fromname=$this->getName(); $from =sprintf('"%s"<%s>',($fromname?$fromname:$this->getEmail()),$this->getEmail()); $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject, 'Date'=>date('D, d M Y H:i:s O'), 'Message-ID' =>'<'.Misc::randCode(6).''.time().'-'.$this->getEmail().'>', 'X-Mailer' =>'osTicket v 1.6', 'Content-Type' => 'text/html; charset="UTF-8"' ); $mime = new Mail_mime(); $mime->setTXTBody($body); //attachment TODO: allow multiple attachments - $attachment should be mixed parts. if($attachment && $attachment['file'] && is_readable($attachment['file'])) { //file of mime type. $mime->addAttachment($attachment['file'],$attachment['type'],$attachment['name']); } $options=array('head_encoding' => 'quoted-printable', 'text_encoding' => 'quoted-printable', 'html_encoding' => 'base64', 'html_charset' => 'utf-8', 'text_charset' => 'utf-8'); //encode the body $body = $mime->get($options); //encode the headers. $headers = $mime->headers($headers); [..] Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Listopad 30, 2011 Chodziło mi bardziej o wyplucie treści takiego maila żeby stwierdzić czy krzaki są zanim treść zostanie przekazana do funkcji wysyłkowej czy przed, przez co będziesz wiedział w którym miejscu szukać problemu. $var['message']=utf8_encode(Format::stripEmptyLines($body)); Czyli wyświetlić $body, Format::stripEmptyLines($body) i utf8_encode(Format::stripEmptyLines($body)) i zobaczyć efekt. Udostępnij ten post Link to postu Udostępnij na innych stronach