wil*_*ler 4 email mime codeigniter utf-8
当主题超过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-
Run Code Online (Sandbox Code Playgroud)
更新: 这与gmail smtp无关.我已经重写了这个问题,希望将来可以帮助某人.
wil*_*ler 16
显然这是一个已知问题,由主题行> 75个字符引起.
http://codeigniter.com/forums/viewthread/154493/P15/#925385
解决方法是更改电子邮件配置,如下所示:
$config['newline'] = "\r\n";
$config['crlf'] = "\n";
Run Code Online (Sandbox Code Playgroud)
由于我自己有这个确切的问题,我将在这里分享解决方案,因为共享的一个不适用于2.2版
找到位于system/libraries/Email.php:365中的这段代码
public function subject($subject)
{
$subject = $this->_prep_q_encoding($subject);
$this->_set_header('Subject', $subject);
return $this;
}
Run Code Online (Sandbox Code Playgroud)
有这个
public function subject($subject)
{
$subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
$this->_set_header('Subject', $subject);
return $this;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8139 次 |
| 最近记录: |