如何使用PHP添加额外的标头

时间:2014-12-12 01:30:30

标签: php utf-8 html-email pear

我是PEAR模块的新手,我正在尝试发送带附件的电子邮件。邮件有效,但当我使用像口音这样的特殊字符时,我收到了奇怪的符号:

原文:Tiburón 收到的词:tiburón

我读到我错过了将UTF-8编码添加到我的电子邮件中,所以我尝试包含以下行:

$headers = array("Content-Type: text/html; charset=UTF-8");

下面是我正在使用的代码,但它不起作用,我仍然得到奇怪的符号:

$message = new Mail_mime(); 
$message->setTXTBody($text); 
$body = $message->get();
$extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email,"CC"=>$bccemail, "Content-Type"=>"text/html; charset=UTF-8");
$headers = $message->headers($extraheaders);
$mail = Mail::factory("mail");
$send = $mail->send($to, $headers, $body);

$ extraheaders的语法是否正确?我也试过找一个简单的教程,但我没有运气。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

查看documentation page上的用户评论:

$mimeparams = array();
$mimeparams['text_encoding']="8bit"; 
$mimeparams['text_charset']="UTF-8"; 
$mimeparams['html_charset']="UTF-8"; 
$mimeparams['head_charset']="UTF-8"; 

$headers = array();
$headers['From'] = 'foo@example.org;
$headers['To']   = 'bar@example.org;
$headers['Subject'] = 'Test;
$headers["Content-Type"] = 'text/html; charset=UTF-8';
$headers["Content-Transfer-Encoding"]= "8bit";

$body = $mime->get($mimeparams); 
$headers = $mime->headers($headers);