主题时格式错误的电子邮件主题标题>使用codeigniter email lib的75个字符

时间:2011-12-02 01:58:37

标签: email codeigniter utf-8 mime

当主题超过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无关。我已经重写了这个问题,希望将来可以帮助某人。

2 个答案:

答案 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;
}