Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php pear邮件的电子邮件标题中的符号_Php_Email_Utf 8_Smtp_Pear - Fatal编程技术网

Php pear邮件的电子邮件标题中的符号

Php pear邮件的电子邮件标题中的符号,php,email,utf-8,smtp,pear,Php,Email,Utf 8,Smtp,Pear,我试着放一个心形符号♥ 进入电子邮件的标题,该标题应通过php pear邮件包发送 但是接受者得到了一个信号?而不是心,所以一定有一些错误。如果我用我的邮件客户端手动发送电子邮件,它就会工作 我的代码如下: require_once "Mail.php"; $smtp = Mail::factory('smtp', array ('host' => 'host', 'port' => port,

我试着放一个心形符号♥ 进入电子邮件的标题,该标题应通过php pear邮件包发送

但是接受者得到了一个信号?而不是心,所以一定有一些错误。如果我用我的邮件客户端手动发送电子邮件,它就会工作

我的代码如下:

require_once "Mail.php";  
 $smtp = Mail::factory('smtp',
              array ('host' => 'host',
                         'port' => port,
                         'auth' => true,
                         'username' => 'username',
                         'password' => 'password');

$headers = array ('From' => 'sender',
          'Subject' => '♥ test',
          'Charset' => 'utf-8',

        );



$mail = $smtp->send($to, $headers, 'heart test');

我需要更改什么才能使邮件接收者正确显示心形?

您没有正确指定字符集,因此是的。。。这是一个字符集不匹配:

$headers = array(
   'Content-type' => 'text/plain; charset=UTF-8'
);

这是你应该拥有的。没有字符集标题。

将其更改为您的建议,但此心脏仍显示为?。但是,如果我将=?UTF-8?B?4pml?=而不是心脏符号,心脏就会出现。这是怎么回事?@Matthias你已经对主题中显示的非7位安全字符进行了正确编码,这就是问题所在。