Doğan Tankişi yazmış:
Merhabalar,
qmail mail sunucu kullanıyorum çok ilginc bir sorunla karşılaşıyorum çözüme bir türlü kavuşamadım. sunucudaki web sitelerindeki iletişim formlarından gönderilen mailler outlook express tarafından düzgün görüntülenmiyor. php kodlarla alakası oldugunu düşündüm ve kodlardaki Content-Type ile oynama yaptım yine bir sonuca ulaşamadım. kodları farklı bir sunucuya attıgım zaman herhangi bir sorun yok düzgün olarak okunuyor outlook'ta tabi farklı sunucudaki mail sunucusu farklı ben qmail kullanıyorum. bununla ilgili bir çözüm varmıdır?
--
Mobile : 0 533 666 49 49
Merhabalar.
Uzunca bir süre süre önce php ile gönderdiğim maillerdeki Subjecteki türkçe karakter hatalarını görüp çözüm aramıştım. Phpmailer ile gönderilenlerde bu sorunun olmadığını görüp inceleyip subjectte benzer bir çözüm uyguladığımda çözülmüştü.
Koddan  bir bölüm aşağıda.

function _encode($input , $tip ='q') {
//\304\260\305\237 ba\305\237 :.
   //subject encoder formulü
   //=?utf-8?Q?=C2=A1Hola,_se=C3=B1or!?=
   //$mclass=new mailEnCoder();
   /*
   =?utf-8?[encoded subject text]==?=
   =?utf-8?B?".base64_encode($subject)."?="
   B : base 64
   Q :qutat printable
   */
if(empty($input) ) return $input;

   if($tip=='q'){

           $ency=$this->_quotedPrintableEncode($input );
           if($ency==$input)     return  $input;

           $quotput="=?".$this->charset."?Q?".$ency."?=";
   }else{
           $ency=base64_encode($input);
           $quotput="=?".$this->charset."?B?".$ency."?=";
}

   return  $quotput;
}


function _quotedPrintableEncode($input , $line_max = 76)
   {
       $lines  = preg_split("/\r?\n/", $input);
       $eol    =rn;// MAIL_MIMEPART_CRLF;
       $escape = '=';
       $output = '';

       while(list(, $line) = each($lines)){

           $linlen     = strlen($line);
           $newline = '';

           for ($i = 0; $i < $linlen; $i++) {
               $char = substr($line, $i, 1);
               $dec  = ord($char);

if (($dec == 32) AND ($i == ($linlen - 1))){ // convert space at eol only
                   $char = '=20';

               } elseif($dec == 9) {
                   ; // Do nothing if a tab.
               } elseif(($dec == 61) OR ($dec < 32 ) OR ($dec > 126)) {
$char = $escape . strtoupper(sprintf('%02s', dechex($dec)));
               }

if ((strlen($newline) + strlen($char)) >= $line_max) { // MAIL_MIMEPART_CRLF is not counted $output .= $newline . $escape . $eol; // soft line break; " =\r\n" is okay
                   $newline  = '';
               }
               $newline .= $char;
           } // end of for
           $output .= $newline . $eol;
       }
$output = substr($output, 0, -1 * strlen($eol)); // Don't want last crlf
       return $output;
   }


------------------------------------------------------------------------

_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]

Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından 
okuyabilirsiniz;

Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen 
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 
dakika içinde üyeliğinizi sonlandırabilirsiniz.
http://liste.linux.org.tr/mailman/listinfo/linux-sunucu

_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]

Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından 
okuyabilirsiniz;

Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen 
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 
dakika içinde üyeliğinizi sonlandırabilirsiniz.
http://liste.linux.org.tr/mailman/listinfo/linux-sunucu

Cevap