Проблема у exim с русским языком

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-10 13:56:13

Может кто подскажет, что можно сделать....
Ситуация следующая: настроил в exim транспорт autoreply, для обратной отсылки отправителю шаблонного сообщения со вставкой в конец первоначального сообщения (опцией return_message), все нормально, но при получении письма отправителем во вложенном сообщении (первоначальном) все русские букву превращаются в че попало...
Можно каким то образом это вылечить??? :st:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Cancer
Гл. Кастратор
Сообщения: 1269
Зарегистрирован: 2008-03-25 12:21:36
Откуда: г. Ростов-на-Дону
Контактная информация:

Re: Проблема у exim с русским языком

Непрочитанное сообщение Cancer » 2008-10-10 20:54:25

а ты собирал ЭКЗИМ в кои8 ??

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Проблема у exim с русским языком

Непрочитанное сообщение lerryc » 2008-10-11 15:59:07

SevenMK писал(а):Может кто подскажет, что можно сделать....
Ситуация следующая: настроил в exim транспорт autoreply, для обратной отсылки отправителю шаблонного сообщения со вставкой в конец первоначального сообщения (опцией return_message), все нормально, но при получении письма отправителем во вложенном сообщении (первоначальном) все русские букву превращаются в че попало...
Можно каким то образом это вылечить??? :st:
1) поле сабжет содержит код коде-пейдж, если не содержит - то кои-8
Subject: =?koi8-r? далее текст собствеено сабжета

2) перед телом письма присутствуют еще указатели
Content-Type: text/plain; charset="koi8-r"
и\или
Content-Transfer-Encoding: quoted-printable (или 8bit)

вместо кои8 могут быть вынь1251 или утф8

что мешает проанализировать эти поля на наличие той или иной кодировки и подсунуть "свой кусок" в нужной кодировке?
машина думать не может, машина должна ехать

SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Re: Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-13 10:47:41

lerryc писал(а):
SevenMK писал(а):Может кто подскажет, что можно сделать....
Ситуация следующая: настроил в exim транспорт autoreply, для обратной отсылки отправителю шаблонного сообщения со вставкой в конец первоначального сообщения (опцией return_message), все нормально, но при получении письма отправителем во вложенном сообщении (первоначальном) все русские букву превращаются в че попало...
Можно каким то образом это вылечить??? :st:
1) поле сабжет содержит код коде-пейдж, если не содержит - то кои-8
Subject: =?koi8-r? далее текст собствеено сабжета

2) перед телом письма присутствуют еще указатели
Content-Type: text/plain; charset="koi8-r"
и\или
Content-Transfer-Encoding: quoted-printable (или 8bit)

вместо кои8 могут быть вынь1251 или утф8

что мешает проанализировать эти поля на наличие той или иной кодировки и подсунуть "свой кусок" в нужной кодировке?

Изначальное письмо посылается в UTF-8. далее при обратной пересылке exim пересылает первоначальный текст в utf-7, как я понял, в результате чего обрезается первый бит каждого символа и поучается билеберда. Если в сабжекте от этого можно избавиться преобразованием ${rfc2047:} (и то есть ограничение на длину строки не превышаюшую 62 байта), то каким образом перекидоровать текст первоначального письма в удобочитаемый вид я пока что не могу найти.
Добавление заголовков Content-Type: text/plain; charset="utf-8", Content-Transfer-Encoding: 8-bit в транспорт autoreply екзиму ни чего не говорит, а говорит только принимаюшему MUA.
Может знаете каким образом можно изменить кодировку первоначального сообщения? или как можно подсунуть "свой кусок в нужной кодировке"???
:unknown:

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Проблема у exim с русским языком

Непрочитанное сообщение lerryc » 2008-10-13 13:26:51

SevenMK писал(а): Изначальное письмо посылается в UTF-8. далее при обратной пересылке exim пересылает первоначальный текст в utf-7, как я понял, в результате чего обрезается первый бит каждого символа и поучается билеберда. Если в сабжекте от этого можно избавиться преобразованием ${rfc2047:} (и то есть ограничение на длину строки не превышаюшую 62 байта), то каким образом перекидоровать текст первоначального письма в удобочитаемый вид я пока что не могу найти.
Добавление заголовков Content-Type: text/plain; charset="utf-8", Content-Transfer-Encoding: 8-bit в транспорт autoreply екзиму ни чего не говорит, а говорит только принимаюшему MUA.
Может знаете каким образом можно изменить кодировку первоначального сообщения? или как можно подсунуть "свой кусок в нужной кодировке"???
:unknown:
imho, ничто никуда конвертировать не нужно
у тебя есть один из четырех вариантов подстановки "своего куска" - eng\koi\win\utf
должны быть подготовлены 4 шаблона "вставки" (или перекодировка налету)
по заголовкам нужно только разобраться какой из вариантов подключить - а дополнительную перекодировку входящего письма не нужно делать, имхо
покажи свой пример транспорта и пример примера который глючит - попробую смоделировать на своей системе - тогда может более определенно смогу что сказать

что покажет тест : в транспорте использовать не русский а анлийский текст в добавляемом куске - исходное письмо все равно 7битится?
if () {yes} в этом случае спрошу как и Cancer - а екзим 8бит держит?
машина думать не может, машина должна ехать

SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Re: Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-13 14:58:45

lerryc писал(а): imho, ничто никуда конвертировать не нужно
у тебя есть один из четырех вариантов подстановки "своего куска" - eng\koi\win\utf
должны быть подготовлены 4 шаблона "вставки" (или перекодировка налету)
по заголовкам нужно только разобраться какой из вариантов подключить - а дополнительную перекодировку входящего письма не нужно делать, имхо
покажи свой пример транспорта и пример примера который глючит - попробую смоделировать на своей системе - тогда может более определенно смогу что сказать

что покажет тест : в транспорте использовать не русский а анлийский текст в добавляемом куске - исходное письмо все равно 7битится?
if () {yes} в этом случае спрошу как и Cancer - а екзим 8бит держит?
С exim я начал возиться совсем недавно, так что могли бы подсказать как подготовить 4 шаблона "вставки", и настроить подключение данных вариантов по заголовку письма.
Транспорт у меня такой:

test_trans:
driver = autoreply
from = \"TEST SYSTEM\" \<$acl_m5\>
to = $sender_address
# headers_add = MIME-Version: 1.0\n\
# Content-Type: text/plain;\n charset="utf-8"\n\
# Content-Transfer-Encoding: 8bit
subject = ${rfc2047:$header_subject: ${escape:$acl_m4}}
text = Confirm your message with key ${escape:$acl_m4} in subject
log = /etc/exim4/scripts/transport
return_message


Посылаемое письмо:

From: Mar Kas <mar@xxxxx.ru>
Organization: YYlink
To: mar@mail2.xxxxx.ru
Subject: =?utf-8?b?0J/QoNCY0JLQldCiISEhISEhIQ==?=
User-Agent: KMail/1.9.6 (enterprise 20070904.708012)
MIME-Version: 1.0
Content-Disposition: inline
Status: RO
X-Status: RSC
X-KMail-EncryptionState: N
X-KMail-SignatureState: N
Date: Mon, 13 Oct 2008 16:38:53 +0500
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: base64
Message-Id: <200810131638.53964.mar@xxxxx.ru>
X-KMail-MDN-Sent:

Добрый день!

С уважением, Я.
------------------------------------------------

А в ответе получаю следующее(второй заголовок это вложенного письма, передается в теле ответного сообщения):

Return-Path: <>
X-Real-To: <mar@xxxxx.ru>
Received: from [193.xxx.xxx.20] (HELO mail2.xxxxx.ru)
by xxxxx.ru (CommuniGate Pro SMTP 4.0.5)
with ESMTP-TLS id 5020174 for mar@xxxxx.ru; Mon, 13 Oct 2008 16:46:01 +0500
Received: from Debian-exim by mail2.xxxxx.ru with local (Exim 4.63)
id 1KpQkd-0007Ma-9v
for mar@xxxxx.ru; Mon, 13 Oct 2008 21:58:35 +0500
From: "TEST SYSTEM" <mar@mail2.xxxxx.ru>
To: mar@xxxxx.ru
Subject: =?UTF-8?Q?=D0=9F=D0=A0=D0=98=D0=92=D0=95=D0=A2!!!!!!!_b700145e2ed006b1a?= =?UTF-8?Q?2ebb78dc93c75dd=5Cn?=
In-Reply-To: <200810131651.21704.mar@xxxxx.ru>
References: <200810131651.21704.mar@xxxxx.ru>
Auto-Submitted: auto-replied
Message-Id: <E1KpQkd-0007Ma-9v@mail2.xxxxx.ru>
Date: Mon, 13 Oct 2008 21:58:35 +0500
Status: R
X-Status: NC
X-KMail-EncryptionState:
X-KMail-SignatureState:
X-KMail-MDN-Sent:

Confirm your message with key b700145e2ed006b1a2ebb78dc93c75dd\n in subject

------ This is a copy of the message, including all the headers.

Received: from mail.xxxxx.ru ([194.79.34.3] helo=xxxxx.ru)
by mail2.xxxxx.ru with esmtp (Exim 4.63)
(envelope-from <mar@xxxxx.ru>)
id 1KpQkd-0007MO-8J
for mar@mail2.xxxxx.ru; Mon, 13 Oct 2008 21:58:35 +0500
Received: from [194.79.35.10] (HELO mar)
by xxxxx.ru (CommuniGate Pro SMTP 4.0.5)
with ESMTP-TLS id 5020170 for mar@mail2.xxxxx.ru; Mon, 13 Oct 2008 16:46:00 +0500
From: Mar Kas <mar@xxxxx.ru>
Organization: YYlink
To: mar@mail2.xxxxx.ru
Subject: =?utf-8?b?0J/QoNCY0JLQldCiISEhISEhIQ==?=
User-Agent: KMail/1.9.6 (enterprise 20070904.708012)
MIME-Version: 1.0
Content-Disposition: inline
Date: Mon, 13 Oct 2008 16:51:21 +0500
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: base64
Message-Id: <200810131651.21704.mar@xxxxx.ru>

0JTQvtCx0YDRi9C5INC00LXQvdGMIQoKCgrQoSDRg9Cy0LDQttC10L3QuNC10LwsCtCa0LDRgdC4
0LzQvtCyINCc0LDRgNCw0YIK0J7QntCeICLQoNCw0LTQuNC+0JvQuNC90LoiCtGCLjYwMC01MDIK

----------------------------------------------

Вот то что в конце это и есть тело первоначального сообщения.

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Проблема у exim с русским языком

Непрочитанное сообщение lerryc » 2008-10-13 15:41:07

не совсем догнал идею
в acl_m4 что находится и для чего предназначено?
машина думать не может, машина должна ехать

SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Re: Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-13 19:59:06

lerryc писал(а):не совсем догнал идею
в acl_m4 что находится и для чего предназначено?
Ну в общем то, что там находиться не важно, важно то как отправить исходное сообщение с читаемым на русском языке сообщением.
А так суть решаемой задачи состоит в борьбе с вездесущим спамом, в acl_m4 находиться сгенеренный ключ, который отправляется отправителю сообщения, и при повторном получении сообщения от этого отправителя с ключом в поле сабжа он попадает в белый список,в дальнейшем от этого сендера письма получаются без проблем.
Все решено, кроме проблемы с русским, так что может подскажите как можно привезять заголовок к выбираемому шаблону перекодировки "налету"?? :unknown:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35069
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Проблема у exim с русским языком

Непрочитанное сообщение Alex Keda » 2008-10-14 8:49:09

2 SevenMK
прочитайте правила форума в верху каждой страницы.
Убей их всех! Бог потом рассортирует...

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Проблема у exim с русским языком

Непрочитанное сообщение lerryc » 2008-10-15 14:46:53

[
SevenMK писал(а): Все решено, кроме проблемы с русским, так что может подскажите как можно привезять заголовок к выбираемому шаблону перекодировки "налету"?? :unknown:
у меня возникли проблемы с тестрованием теста на сервере - поэтому даю только идею
делано
в exim.conf

Код: Выделить всё

MYMSGKOI = тут месага в koi
MYMSGUTF = тут месага в utf
................
................
# секция роутера
test_trans :
   driver = accept
# ищем письмо в потоке писем по полю в сабжете или по адресу
   condition = ${if match {$h_subject:}{abc-test}{yes}{no}}
# проверяем кодировку
   condition = ${if match {$rh_subject:}{koi8-r}{yes}{no}}
    transport = test_trans_koi8
......................
......................
test_trans_koi8:
 driver = autoreply
 from = мой емайл
 to = reply_address
 subject = MYMSGKOI
 text = ${readfile{"/etc/exim/my_msg_koi"}}
 return_message
думаю идея понятна
у меня возникли проблемы - при ошибке\путаницы в кодировках - идет попытка доставить отлуп несуществующему юзеру - откуда ноги расут пока не разобрался
машина думать не может, машина должна ехать

SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Re: Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-16 13:38:47

lerryc писал(а):[у меня возникли проблемы с тестрованием теста на сервере - поэтому даю только идею
делано
в exim.conf

Код: Выделить всё

MYMSGKOI = тут месага в koi
MYMSGUTF = тут месага в utf
................
................
# секция роутера
test_trans :
   driver = accept
# ищем письмо в потоке писем по полю в сабжете или по адресу
   condition = ${if match {$h_subject:}{abc-test}{yes}{no}}
# проверяем кодировку
   condition = ${if match {$rh_subject:}{koi8-r}{yes}{no}}
    transport = test_trans_koi8
......................
......................
test_trans_koi8:
 driver = autoreply
 from = мой емайл
 to = reply_address
 subject = MYMSGKOI
 text = ${readfile{"/etc/exim/my_msg_koi"}}
 return_message
думаю идея понятна
у меня возникли проблемы - при ошибке\путаницы в кодировках - идет попытка доставить отлуп несуществующему юзеру - откуда ноги расут пока не разобрался
Вместо text можно использовать file для чтения из файла...Но суть не в этом, сообщение передается через text или file в русской кодировке путем использования ${rfc2047: }, хотя тоже корявенько, а вот сообщения первоначальное (которое передается с помощью return_message) в удобочитаемый вид не получается привести обычними средствами exim (я не знаю как), хотя мне кажеться что все должно быть проще, т.к. всего лишь надо заставить exim по умолчанию работать в UTF-8(отправлять письмо). Ну полюбе ведь кто-то знает!!!РАскалывайтесь!!!

SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Re: Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-16 13:39:34

lerryc писал(а):[у меня возникли проблемы с тестрованием теста на сервере - поэтому даю только идею
делано
в exim.conf

Код: Выделить всё

MYMSGKOI = тут месага в koi
MYMSGUTF = тут месага в utf
................
................
# секция роутера
test_trans :
   driver = accept
# ищем письмо в потоке писем по полю в сабжете или по адресу
   condition = ${if match {$h_subject:}{abc-test}{yes}{no}}
# проверяем кодировку
   condition = ${if match {$rh_subject:}{koi8-r}{yes}{no}}
    transport = test_trans_koi8
......................
......................
test_trans_koi8:
 driver = autoreply
 from = мой емайл
 to = reply_address
 subject = MYMSGKOI
 text = ${readfile{"/etc/exim/my_msg_koi"}}
 return_message
думаю идея понятна
у меня возникли проблемы - при ошибке\путаницы в кодировках - идет попытка доставить отлуп несуществующему юзеру - откуда ноги расут пока не разобрался
Вместо text можно использовать file для чтения из файла...Но суть не в этом, сообщение передается через text или file в русской кодировке путем использования ${rfc2047: }, хотя тоже корявенько, а вот сообщения первоначальное (которое передается с помощью return_message) в удобочитаемый вид не получается привести обычними средствами exim (я не знаю как), хотя мне кажеться что все должно быть проще, т.к. всего лишь надо заставить exim по умолчанию работать в UTF-8(отправлять письмо). Ну полюбе ведь кто-то знает!!!РАскалывайтесь!!!

SevenMK
рядовой
Сообщения: 16
Зарегистрирован: 2008-10-07 16:46:56

Re: Проблема у exim с русским языком

Непрочитанное сообщение SevenMK » 2008-10-20 18:59:19

Итак, есть прогресс :smile: , выявились некоторые нюансы, проблема на самом деле заключается в том, что некоторые MUA(типа microsoft outlook и kmail) посылают письма с полем заголовка ContentType=base64, соответственно при обратной отправке письма в транспорте autoreply функцией return_message, текст вложенного первоначального письма(в заголовке которого указано ContentType=base64) воспринимается не как текст, а как вложенный файл и из-за этого-то и получается билеберда. Если же MUA посылает нормальный заголовок(например ContentType=8bit для текста и ContentType=base64 для вложенных файлов), то и обратно он отсылается в читаемом виде...Так что вот, для таких дурных MUA предлагаю на входе (acl_content) подменять поле заголовка ContentType=base64 на ContentType=8bit (если это текст соответственно), это решит проблемму :cz2:

neyro
сержант
Сообщения: 187
Зарегистрирован: 2008-03-07 20:24:25
Контактная информация:

Re: Проблема у exim с русским языком

Непрочитанное сообщение neyro » 2008-10-23 20:23:43

ап...SevenMK можеш выложить готовое решение ? Оно пофиксит отлупы в кракозябрах ? (типа унроутабле адрес...и далее вместо текста чушь всякая..) ? Тема очень актуальна.


пример авто-ответа

Код: Выделить всё

To: =?windows-1251?Q?=CF=E0=F0=E0=EC=E7=E8=ED=E0_=CB=E8=FF_=CC=E8=F5=E0?=
 =?windows-1251?Q?=E9=EB=EE=E2=ED=E0?= <xxx@xxx.ru>
Subject: [Fwd: =?windows-1251?Q?=CA=EE=ED=F4=E5=F0=E5=ED=F6=E8=FF=2C_=C1?=
 =?windows-1251?Q?=E8=F0=E6=E0_=D1=F3=E1=EA=EE=ED=F2=F0=E0=EA=F2=EE=E2_?=
 =?windows-1251?Q?_=E3=2E_=CC=EE=F1=EA=E2=E0_3-4_=E4=E5=EA=E0=E1=F0?=
 =?windows-1251?Q?=FF=5D?=