неправильно сформированный заголовок темы письма, когда тема> 75 символов при использовании codeigniter email lib - PullRequest
4 голосов
/ 02 декабря 2011

Я получаю немного искажений в заголовках MIME, когда объект превышает 75 символов.Когда в заголовке кодируется разрыв строки, возникает дополнительный недопустимый разрыв строки.

Некоторые почтовые шлюзы пересылают письмо с помощью "искаженного поля MIME:? = =? Utf-8?Q? SUBJECT? = " error.

Кто-нибудь сталкивался с проблемами utf-8 при отправке писем с CodeIgniter?


-snip-
Return-Path: ***
Subject: =?utf-8?Q?SUBJECT_LINE    <--
?=                                 <-- Problem in Subject header
 =?utf-8?Q?SUBECT_LINE_2?=         <--
To: ***
Reply-To: ***
-snip-

Обновление: Это не имеет ничего общего с SMTP Gmail.Я переписал вопрос в надежде, что он поможет кому-то в будущем.

Ответы [ 2 ]

16 голосов
/ 02 декабря 2011

Очевидно, это известная проблема, вызванная темами строк> 75 символов.

http://codeigniter.com/forums/viewthread/154493/P15/#925385

Исправлено изменение конфигурации электронной почты следующим образом:

$config['newline'] = "\r\n";
$config['crlf']    = "\n"; 
5 голосов
/ 18 июня 2015

Поскольку у меня была именно эта проблема, я поделюсь здесь решением, так как один общий не работает с версией 2.2

Найдите этот фрагмент кода, расположенный в system / library / 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;
}
...