Skocz do zawartości
Zaloguj się, aby obserwować  
lukaschemp

osTicket polskie znaki

Polecane posty

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

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

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 przez lukaschemp (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×