我的要求是在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 ()
);
这里一切都很顺利,但问题是主题以"evrimii Tebrik Card Designer Takım
"中的(Takım as Takım
)编码形式进行任何能提供帮助的人都将不胜感激。
只是一个建议:不要使用内置的邮件功能。使用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/
如注释中所述,您可能在数据库中已经将编码字符作为ı
。
您可以使用html_entity_decode()
(http://de2.php.net/function.html-entity-decode)以反转编码。