If CHUNKING was advertised and a BDAT command sequence is received, the
acl_smtp_predata ACL is not run.
По умолчанию CHUNKING advertised, например Gmail использует команды BDAT.
В таком случае acl_smtp_predata не вызывается. Непонятно почему так сделали.
_______________________________________________
Exim-users mailing list
Exim-...@mailground.net
http://mailground.net/mailman/listinfo/exim-users
On Mon, 16 Jan 2017 at 23:49:35 (+0200), Le...@lena.kiev.ua wrote:
> Засада в новом Exim 4.88:
> If CHUNKING was advertised and a BDAT command sequence is received, the
> acl_smtp_predata ACL is not run.
> По умолчанию CHUNKING advertised, например Gmail использует команды BDAT.
> В таком случае acl_smtp_predata не вызывается. Непонятно почему так сделали.
Хм-м, в Changelog не смог найти упоминания о какой-либо смене поведения %-\
Вы уверены, что это в 4.88 появилось?
Ну, и, если это так, то, получается, что ukr.net сегодня массово у себя
обновил exim до 4.88, о чём Вова умолчал в своём оригинальном сообщении,
что звучит немного странно.
--
George L. Yermulnik
[YZ-RIPE]
Угу. Только в большой документации (spec).
> Вы уверены, что это в 4.88 появилось?
Вообще поддержка chunking появилась в 4.88.
> Ну, и, если это так, то, получается, что ukr.net сегодня массово у себя
> обновил exim до 4.88, о чём Вова умолчал в своём оригинальном сообщении,
> что звучит немного странно.
Подозреваю, что обновил он раньше, а сегодня добавил в конфиг
chunking_advertise_hosts
Возможно, только на части своих серверов.
Я проверила, бага в Exim нет: если добавить
chunking_advertise_hosts =
(без ничего после знака равенства), то Exim перестает advertise
(говорить CHINKING в ответе на EHLO). Может Gmail кэширует этот факт?
Есть другой баг в Exim 4.88: из-за chunking, если письмо от Gmail
длиннее 64K (включая аттачменты), то при проверке Exim-ом
DKIM-сигнатуры письма от Gmail
Exim выдает ошибку - якобы несоответствие хэша тела.
Из-за этого, а также странности с predata, таки имеет смысл отключить
это chunking (кстати не понимаю, как оно может ускорить передачу письма).
> На одном инстансе был поставлен в тесте 4.88
> и адвертайзил CHUNKING. И там ЖОПА:
> | egrep -c 'SMTP call from mail-.*google.com .*dropped: too many syntax or protocol errors'
> 2018
> Эти ошибки есть только на 4.88,
> остальные на 4.87 - ни единой ошибки.
Может у вас какой-то роутер (например Cisco)
вмешивается в протокол SMTP
и искажает данные в случае использования chunking,
т.к. не был рассчитан на chunking?
А вообще, почитав
https://tools.ietf.org/html/rfc1830
https://tools.ietf.org/html/rfc3030
и спросив входящий MX Gmail:
~ $ telnet gmail-smtp-in.l.google.com 25
Trying 108.177.14.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 94si2818lfx.9 - gsmtp
ehlo bedside.lena.kiev.ua
250-mx.google.com at your service, [94.244.28.208]
250-SIZE 157286400
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
quit
(есть CHUNKING, но нет BINARYMIME), и учитывая разговор
про баг в Exim 4.88 с DKIM от Gmail (баг проявляется,
если письмо длиннее 64K, т.е. Gmail передает письмо
кусками по 64K - а нафига спрашивается?),
у меня появилось параноидальное подозрение, что
этот стандарт про chunking в SMTP - диверсия NSA с целью создать
предсказуемые данные (команды BDAT) в предсказуемых местах
(через каждые 64K), чтобы можно было расшифровывать
письма, переданные с шифрованием STARTTLS.
В общем, я вставила в конфиг моего Exim 4.88
chunking_advertise_hosts =
(ничего после знака равенства) и не собираюсь убирать никогда.
Не будет Exim никогда преобразовывать тело письма,
чтобы использовать BINARYMIME при передаче письма.
Тогда какой смысл в chunking?