这个编码问题可能是由什么引起的?我是否正确地对头信息进行了编码,还是可能在其他地方引起的?
我在这里找到了一个类似的问题:PHP电子邮件主题编码问题,但从我所读到的内容来看,我认为我的做法是正确的。
基本上,有时我们的客户会发送用法语写的电子邮件。它可以工作,但偶尔会出现一些编码问题,我想知道我是否编码错误(我无法解决)。
上面的代码是我编码头部信息的方式,下面是发送过程:
问题在于他们收到的电子邮件是来自以下地址:
感谢您的任何帮助 :)
编辑:客户的名称基本上使用与上述相同的字符。我的意思是,该电子邮件应该来自“安大略省的Clientnamé”。
我在这里找到了一个类似的问题:PHP电子邮件主题编码问题,但从我所读到的内容来看,我认为我的做法是正确的。
基本上,有时我们的客户会发送用法语写的电子邮件。它可以工作,但偶尔会出现一些编码问题,我想知道我是否编码错误(我无法解决)。
$from = '=?UTF-8?B?'.base64_encode($email['from_name']).'?= <'.$email['from_email'].'>';
$to = '=?UTF-8?B?'.base64_encode($email['to_name']).'?= <'.$email['to_email'].'>';
$get_param = array(
'Content-Type' => 'text/plain;charset=utf-8',
'Content-Transfer-Encoding' => '8bit');
上面的代码是我编码头部信息的方式,下面是发送过程:
$msg = $message_mime->get($get_param);
$headers = array (
'From' => $from,
'To' => $to,
'Reply-To' => $from,
'Subject' => utf8_decode($subject));
$headers = $message_mime->headers($headers);
$smtp = Mail::factory('smtp',
array ('host' => $smtp_settings['host'],
'auth' => true,
'username' => $smtp_settings['username'],
'password' => $smtp_settings['password']));
$mail = $smtp->send($to, $headers, $msg);
问题在于他们收到的电子邮件是来自以下地址:
Clientnamé de l'Ontario[=?UTF-8B?QXNzZW1ib(...)=?=]
感谢您的任何帮助 :)
编辑:客户的名称基本上使用与上述相同的字符。我的意思是,该电子邮件应该来自“安大略省的Clientnamé”。
text/html
或multipart
,但以text/plain
的形式发送,则内容类型可能会成为问题。在任何体面的邮件库中,这应该被设置为(半)自动。无论如何,请查看此示例以及此论坛帖子。设置其他MIME参数head_charset
,text_charset
和html_charset
可能会奏效。您有可以用于测试的开发服务器吗? - Viktor