2013-08-06 129 views
2

我的要求是在土耳其语发送邮件。 这里是我的代码:邮件在土耳其语

$rst2 = $this->selectQry(TBL_MAILSETTING,"mailTypeId='8' AND langId='1'",'0','0'); 
$query2= $this->getResultRow($rst2); 
$subject2 = $query2['mailSubject']; 

$subject2 = iconv_mime_decode($subject2, 2, "utf-8"); 

$subject2 = mb_convert_encoding($subject2, "utf-8","AUTO"); 
$subject2 = mb_encode_mimeheader($subject2); 

$from1 = $_POST['email']; 
$query2['message'] = $query2['mailContaint']; 
$query2['message']=str_replace("[name]",$_POST[name],$query2['message']); 

$message1 = $query2['message']; 

mail(
     $from1 
    , $subject2 
    , "$message1\r\n" 
    , "From: $from\n" 
     . "MIME-Version: 1.0\n" 
     . "Content-type:text/html;charset=iso-8859-1" . "\r\n" 
     . 'X-Mailer: PHP/' . phpversion() 
); 

这里每一件事情进行得很顺利,但问题是当被摄体在编码形式在“evrimii Tebrik Card Designer Takım” 任何机构可以帮助将赞赏打算为(Takım为Takım)。

+1

你试过'utf-8'或'iso-8859-9'而不是'iso-8859-1'吗? – Bora

+0

是的,我曾尝试utf-8,iso-8859-9,iso-8859-1,iso-8859-2,但结果相同。 –

+0

你可以在/etc/php.ini和/etc/php.d/mbstring.ini中检查这个“mbstring。*”字符串,然后重新启动apache,它可以帮助 –

回答

0

只是一个建议:不要使用内置的邮件功能。使用Zend Mail,或者phpmailer或者PEAR Mail,或者任何好的邮件包。重点是:一个完善的软件包已经解决了主要问题,也是你所问的问题(关于编码)。

但不管怎么说:你的问题是下降到错误的编码在主题(这是UTF-8):

mail($to, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $headers); 

更多关于这个问题的字符集编码的位置:

http://ncona.com/2011/06/using-utf-8-characters-on-an-e-mail-subject/