Диагноз и причина
Оповещения от русской версии PHPBB падают в спам.X-Amavis-Alert: BAD HEADER SECTION, Non-encoded 8-bit data (char D3 hex): Subject: 323342345344356354353345355350345 356341 356[...] X-Spam-Flag: NO X-Spam-Score: 4.301 X-Spam-Level: **** X-Spam-Status: No, score=4.301 tagged_above=-10 required=5 tests=[BAYES_50=0.8, RCVD_IN_DNSWL_NONE=-0.0001, SUBJECT_NEEDS_ENCODING=0.049, SUBJ_ILLEGAL_CHARS=1.518, TO_NO_BRKTS_MSFT=1.934] autolearn=no
subject уходит с сервера в iso-8859-1/quoted. В этой кодировке русских букв нет.
Subject: =?iso-8859-1?Q?=D3=E2=E5=E4=EE=EC=EB=E5=ED=E8=E5_=EE=E1_=EE=F2=E2?= =?iso-8859-1?Q?=E5=F2=E5_=E2_=F2=E5=EC=E5_-_=D7=F2=EE_=ED=E5_=ED=F0=E0=E2?= =?iso-8859-1?Q?=E8=F2=F1=FF_=ED=E0_=F1=E0=E9=F2=E5?=
Хотя тело сообщения - нормально в Windows-1251
MIME-Version: 1.0 Content-type: text/plain; charset=windows-1251 Content-transfer-encoding: 8bit
Лечение
Нужно изменить кодировку Subject на необходимую с русскими буквами(win1251, utf8, koi8r).
файл
PHPBB_DIR/include/emailer.php
после строчки
$this->subject = (($this->subject != '') ? $this->subject : 'No Subject');
Добавляется
$this->subject = '=?'.trim($lang['ENCODING']).'?B?'.base64_encode($this->subject).'?=';
И после - вуаля
X-Spam-Flag: NO X-Spam-Score: 0.034 X-Spam-Level: X-Spam-Status: No, score=0.034 tagged_above=-10 required=4 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, TO_NO_BRKTS_MSFT=1.934] autolearn=noПо материалам этой темы, спасибо коллеге BW4ever за баг-репорт
Комментариев нет:
Отправить комментарий