Я устраняю периодически возникающую проблему, при которой некоторые международные символы выглядят искаженными после прохождения через sendmail.
Я недавно наткнулся этот статья, в которой описывается F=7
флаг агента доставки. В частности, в статье упоминается, что
Начиная с V8.7, флаг агента доставки F = 7 может использоваться для подавления определенных видов преобразований MIME. Например, если для параметра EightBitMode (EightBitMode на стр. 1025) установлено значение
p
(проход 8), и если сообщение содержит 8-битные данные MIME в своем теле, этот флаг агента доставки F = 7 заставит sendmail отклонить сообщение со следующей ошибкой SMTP и завершить работу с EX_DATAERR:
У меня вопрос: что конкретно ищет sendmail, чтобы определить, поддерживает ли нисходящий MTA 8-битный MIME? В ответ на EHLO
, нижестоящий сервер рекламирует:
250-PIPELINING
250-SIZE 200000000
250-VRFY
250-STARTTLS
250-ENHANCEDSTATUSCODES
250 8BITMIME
Обратите внимание, что это 250 8BITMIME
и нет 250-8BITMIME
(с тире). Достаточно ли этого для sendmail, чтобы считать, что удаленный источник не поддерживает 8bitmime?
Обратите внимание, что это 250 8BITMIME, а не 250-8BITMIME (с тире). Достаточно ли этого для sendmail, чтобы считать, что удаленный источник не поддерживает 8bitmime?
Нет. Это называется продолжение и это только означает, что эта строка является последней строкой SMTP-ответа.
И вообще 8BITMIME должно быть единственным, что требуется, чтобы показать, что MTA на другой стороне может обрабатывать 8-битные сообщения. (Это маркер расширения соответствующего RFC6152.)