URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 49383
[ Назад ]

Исходное сообщение
"Postfix & 8BIT MIME"

Отправлено Pater , 14-Окт-04 15:39 
Народ!
Выручайте.
Имеется МТА postfix-2.0.19
При доставке письма серверу, который не поддерживает 8и битную кодировку постфикс как-то криво конвертирует 8бит в quoted-printable
Вобщем суть в том, что при отправке сендмейлом заголовок и первые несколько строк тела письма у получателя выглядит так:

Date: Wed, 13 Oct 2004 16:17:55 +0300
Message-Id: <xxxxxxxxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
To: user@provider.com
Subject: blablabla
MIME-Version: 1.0
From: Mycompany <daemon@mydomain.com>
Content-Type: text/html; charset=windows-1251
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by mailer.mydomain.com id i9DDHtA06566
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)

<html>
<head>
<script language=3D"javascript" type=3D"text/javascript">
function toggle(dir,n,rule,k) {
...............................

А при отправке постфиксом так:
To: user@provider.com
Subject: blablabla
MIME-Version: 1.0
From: Mycompany <daemon@mydomain.com>
Content-Type: text/html; charset=windows-1251
Message-Id: <xxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
Date: Wed, 13 Oct 2004 16:10:51 +0300 (EEST)
Content-Transfer-Encoding: quoted-printable
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)

<html>=0D
<head>=0D
<script language=3D"javascript" type=3D"text/javascript">=0D
=0D
function toggle(dir,n,rule,k) {=0D
.......................................

В результате чего старые клиенты типа микрософт аутлук-экспресс 4 и 5 не показывают текст письма хтмлем, а показывают такой вот код с неперекодированными знаками возврата строки.
6й аутлук-экспресс, бат и другие мылеры показывают эти письма без проблем.

Где зарыта собака и как ее оттуда откопать?


Содержание

Сообщения в этом обсуждении
"Postfix & 8BIT MIME"
Отправлено atdp03 , 14-Окт-04 16:01 
>Народ!
>Выручайте.
>Имеется МТА postfix-2.0.19
>При доставке письма серверу, который не поддерживает 8и битную кодировку постфикс как-то
>криво конвертирует 8бит в quoted-printable
>Вобщем суть в том, что при отправке сендмейлом заголовок и первые несколько
>строк тела письма у получателя выглядит так:
>
>Date: Wed, 13 Oct 2004 16:17:55 +0300
>Message-Id: <xxxxxxxxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
>To: user@provider.com
>Subject: blablabla
>MIME-Version: 1.0
>From: Mycompany <daemon@mydomain.com>
>Content-Type: text/html; charset=windows-1251
>Content-Transfer-Encoding: quoted-printable
>X-MIME-Autoconverted: from 8bit to quoted-printable by mailer.mydomain.com id i9DDHtA06566
>X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)

>В результате чего старые клиенты типа микрософт аутлук-экспресс 4 и 5 не
>показывают текст письма хтмлем, а показывают такой вот код с неперекодированными
>знаками возврата строки.
>6й аутлук-экспресс, бат и другие мылеры показывают эти письма без проблем.
>
>Где зарыта собака и как ее оттуда откопать?


postconf -n в студию.

И еще вот это:
>X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)
что такое? Оно не слишком похоже на постфиксовую примочку. ;)


"Postfix & 8BIT MIME"
Отправлено Pater , 14-Окт-04 16:29 
mailer:~ # postconf -n
alias_maps = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter =
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
defer_transports =
disable_dns_lookups = no
home_mailbox = Maildir/
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command =
mailbox_size_limit = 0
mailbox_transport =
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains =
masquerade_exceptions = root
message_size_limit = 10240000
mydestination = $myhostname, localhost.$mydomain
mydomain = mydomain.com
myhostname = mailer.mydomain.com
mynetworks_style = host
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relay_domains = $mydestination
relayhost =
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = no
smtp_use_tls = no
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, reject_rbl_client dul.ru, reject_rbl_client relays.ordb.org, reject_rbl_client dun.dnsrbl.net
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_unknown_hostname, reject_invalid_hostname, reject_non_fqdn_hostname, permit
smtpd_recipient_restrictions = permit_mynetworks, reject_rhsbl_client blackhole.securitysage.com, reject_rhsbl_sender blackhole.securitysage.com, reject_unauth_destination
smtpd_sasl_auth_enable = no
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_use_tls = no
soft_bounce = no
strict_rfc821_envelopes = yes
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 450
mailer:~ #

"Postfix & 8BIT MIME"
Отправлено atdp03 , 14-Окт-04 22:13 
>mailer:~ # postconf -n
>canonical_maps = hash:/etc/postfix/canonical
>sender_canonical_maps = hash:/etc/postfix/sender_canonical
>masquerade_classes = envelope_sender, header_sender, header_recipient
>masquerade_domains =
>masquerade_exceptions = root

>mailer:~ #

Все что делает сам постфикс - в строчках выше.
Остальные трансформации - работа внешних фильтров.

Отключать по одному и смотреть результат.


"Postfix & 8BIT MIME"
Отправлено Pater , 18-Окт-04 09:42 
>>mailer:~ # postconf -n
>>canonical_maps = hash:/etc/postfix/canonical

Этот фильтр пустой

>>sender_canonical_maps = hash:/etc/postfix/sender_canonical

Этот тоже пустой.

>>masquerade_classes = envelope_sender, header_sender, header_recipient
>>masquerade_domains =
>>masquerade_exceptions = root
>
Остальные значения как есть.
То есть отключай не отключай, в данном случае ни на что не повлияло...


>>mailer:~ #
>
>Все что делает сам постфикс - в строчках выше.
>Остальные трансформации - работа внешних фильтров.
>
>Отключать по одному и смотреть результат.



"Postfix & 8BIT MIME"
Отправлено Pater , 14-Окт-04 17:00 

>И еще вот это:
>>X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)
>что такое? Оно не слишком похоже на постфиксовую примочку. ;)


Это мылер получателя добавляет.
Я же показал заголовки тело письма в том виде, в котором его получает клиент, отсылается оно одинаково - PHP-скриптом "как есть" в htmlе, конечно же с указанием Content-transfer-encoding: 8bit


"Postfix & 8BIT MIME"
Отправлено Pater , 14-Окт-04 16:33 
Я тут ишшо малость ошибся.
Конечно же письма после сендмейла выглядят так

Date: Wed, 13 Oct 2004 16:17:55 +0300
Message-Id: <xxxxxxxxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
To: user@provider.com
Subject: blablabla
MIME-Version: 1.0
From: Mycompany <daemon@mydomain.com>
Content-Type: text/html; charset=windows-1251
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by mailer.mydomain.com id i9DDHtA06566
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)

<html>

<head>

<script language=3D"javascript" type=3D"text/javascript">


function toggle(dir,n,rule,k) {

...............................


"Postfix & 8BIT MIME"
Отправлено Pater , 18-Окт-04 09:38 
>Date: Wed, 13 Oct 2004 16:17:55 +0300
>Message-Id: <xxxxxxxxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
>To: user@provider.com
>Subject: blablabla
>MIME-Version: 1.0
>From: Mycompany <daemon@mydomain.com>
>Content-Type: text/html; charset=windows-1251
>Content-Transfer-Encoding: quoted-printable
>X-MIME-Autoconverted: from 8bit to quoted-printable by mailer.mydomain.com id i9DDHtA06566
>X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)
>
><html>
><head>
><script language=3D"javascript" type=3D"text/javascript">
>function toggle(dir,n,rule,k) {
>...............................
>
>А при отправке постфиксом так:
>To: user@provider.com
>Subject: blablabla
>MIME-Version: 1.0
>From: Mycompany <daemon@mydomain.com>
>Content-Type: text/html; charset=windows-1251
>Message-Id: <xxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
>Date: Wed, 13 Oct 2004 16:10:51 +0300 (EEST)
>Content-Transfer-Encoding: quoted-printable
>X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/)
>
><html>=0D
><head>=0D
><script language=3D"javascript" type=3D"text/javascript">=0D
>=0D
>function toggle(dir,n,rule,k) {=0D
>.......................................
>
В общем, экспериментальными проверками выяснилось, что проблема кроется в том, что постфикс при перекодировании меняет местами поля

Content-Type: text/html; charset=windows-1251
Message-Id: <xxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
Date: Wed, 13 Oct 2004 16:10:51 +0300 (EEST)
Content-Transfer-Encoding: quoted-printable

В результате чего старые мылклиенты и попадают в ступор.
Что можно сделать, чтобы строки
Content-Type: text/html; charset=windows-1251
Content-Transfer-Encoding: quoted-printable

всегда следовали друг за другом?
Пробовал слать аттачем, вобщем-то та-же фигня - меняет местами строки в заголовках, и эту кашу не понимает старый ОЕ.
Что делать...



"Postfix & 8BIT MIME"
Отправлено atdp03 , 19-Окт-04 02:02 
>В общем, экспериментальными проверками выяснилось, что проблема кроется в том, что постфикс
>при перекодировании меняет местами поля
>
>Content-Type: text/html; charset=windows-1251
>Message-Id: <xxxxxxxxxxxxxxxxxx@mailer.mydomain.com>
>Date: Wed, 13 Oct 2004 16:10:51 +0300 (EEST)
>Content-Transfer-Encoding: quoted-printable
>
>В результате чего старые мылклиенты и попадают в ступор.
>Что можно сделать, чтобы строки
>Content-Type: text/html; charset=windows-1251
>Content-Transfer-Encoding: quoted-printable
>
>всегда следовали друг за другом?
>Пробовал слать аттачем, вобщем-то та-же фигня - меняет местами строки в заголовках,
>и эту кашу не понимает старый ОЕ.
>Что делать...

Я бы начал с того, что нашел-таки место где постфиксу говорится что-то перекодировать. Либо фильтрам подключенным в master.cf
По умолчанию постфикс не трогает содержимое письма, это не его работа.