2

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

$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 ()
);

在这里,一切都进展顺利,但问题是主题以编码形式作为(Takım as Takım) in " evrimii Tebrik Card Designer Takım" 任何人都可以提供帮助,我们将不胜感激。

4

2 回答 2

0

如评论中所述,您可能已经ı在数据库中拥有编码字符。

您可以使用html_entity_decode()( http://de2.php.net/function.html-entity-decode ) 来反转编码。

于 2013-08-16T10:12:54.093 回答
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/

于 2013-08-16T09:58:22.423 回答