当主题超过75个字符时,我的MIME标题中出现了一些乱码。 当换行符在标题中编码时,会有一个无效的额外换行符。
某些电子邮件网关正在使用“格式错误的MIME字段弹出电子邮件:?= =?utf-8?Q?SUBJECT?=”错误。
有没有人对使用CodeIgniter发送电子邮件的utf-8问题有任何经验?
-snip-
Return-Path: ***
Subject: =?utf-8?Q?SUBJECT_LINE <--
?= <-- Problem in Subject header
=?utf-8?Q?SUBECT_LINE_2?= <--
To: ***
Reply-To: ***
-snip-
更新 这与gmail smtp无关。我已经重写了这个问题,希望将来可以帮助某人。
答案 0 :(得分:16)
显然这是一个已知问题,由主题行&gt;引起。 75个字符。
http://codeigniter.com/forums/viewthread/154493/P15/#925385
修复方法是更改电子邮件配置:
$config['newline'] = "\r\n";
$config['crlf'] = "\n";
答案 1 :(得分:5)
由于我自己有这个确切的问题,我将在这里分享解决方案,因为一个共享不适用于2.2版
找到位于 system / libraries / Email.php:365
中的这段代码public function subject($subject)
{
$subject = $this->_prep_q_encoding($subject);
$this->_set_header('Subject', $subject);
return $this;
}
有了这个
public function subject($subject)
{
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
$this->_set_header('Subject', $subject);
return $this;
}