Can't reply to old mail after migration from MS Exchange to dovecot/postfix

We've successfully migrated from an ancient Microsoft Exchange to dovecot+postfix and everything works fine except from one particular case:

When users of Outlook 2016 hit reply on an old mail from someone within the company (someone@example.com) они получают ошибку доставки из Outlook, и иногда я замечаю, что Outlook даже не подключается к SMTP-серверу, а в других случаях он устанавливает его и выдает ошибку (см. ниже). Если они напечатают тот же адрес ( something@example.com) вручную все в порядке.

Письмо с уведомлением о недоставке, которое возвращается, находится в строках (перевод с греческого):

We couldn't reach one or more recipients... 
   'Company S.A. John Smith' at 22/10/2018 1:03 pm
Server error: '501 5.1.3 Bad recipient address syntax'" 

, а постфикс имеет эту строку в журналах:

postfix/smtps/smtpd[3905]: warning: Illegal address syntax from xxx.yyy.local[192.168.0.153] in RCPT command: <Company S.A. John Smith>

Пользователи, у которых есть Thunderbird, имеют совершенно никаких проблем. И Outlook, и Thunderbird используют одни и те же настройки подключения к серверу (безопасный IMAP и SMTP)

Мы будем очень признательны за любые идеи о том, что здесь идет не так.

0
задан 22 October 2018 в 17:39
2 ответа

Некорректные адреса поступают из кэша имен (файла .nk2). Вы должны удалить все записи файла .nk2, которые соответствуют адресам обмена.

В моем случае я использовал бесплатный редактор от Nirsoft для редактирования файла. Я нажал на заголовок столбца Address для сортировки по типу адреса и выбрал все записи, показывающие EX вместо SMTP. Затем я нажимаю delete и save.

Спасибо всем за полезные комментарии и joeqwerty в частности за очень информативную ссылку , которая направляла меня в правильном направлении.

1
ответ дан 4 December 2019 в 15:49

Адресом назначения в записи журнала является Company S.A. John Smith. Постфикс является правильным, когда он жалуется на это, так как пробелы в адресах электронной почты требуют цитирования, а адрес должен иметь символ @, за которым следует домен.

Соответствующими стандартами являются RFC 5321:

   Forward-path   = Path

   Path           = "<" [ A-d-l ":" ] Mailbox ">"

   A-d-l          = At-domain *( "," At-domain )
                  ; Note that this form, the so-called "source
                  ; route", MUST BE accepted, SHOULD NOT be
                  ; generated, and SHOULD be ignored.

   At-domain      = "@" Domain

   Mail-parameters  = esmtp-param *(SP esmtp-param)

   Rcpt-parameters  = esmtp-param *(SP esmtp-param)

   esmtp-param    = esmtp-keyword ["=" esmtp-value]

   esmtp-keyword  = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")

   esmtp-value    = 1*(%d33-60 / %d62-126)
                  ; any CHAR excluding "=", SP, and control
                  ; characters.  If this string is an email address,
                  ; i.e., a Mailbox, then the "xtext" syntax [32]
                  ; SHOULD be used.

   Keyword        = Ldh-str

   Argument       = Atom

   Domain         = sub-domain *("." sub-domain)

   sub-domain     = Let-dig [Ldh-str]

   Let-dig        = ALPHA / DIGIT

   Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig

   address-literal  = "[" ( IPv4-address-literal /
                    IPv6-address-literal /
                    General-address-literal ) "]"
                    ; See Section 4.1.3

   Mailbox        = Local-part "@" ( Domain / address-literal )

   Local-part     = Dot-string / Quoted-string
                  ; MAY be case-sensitive


   Dot-string     = Atom *("."  Atom)

   Atom           = 1*atext

   Quoted-string  = DQUOTE *QcontentSMTP DQUOTE

и RFC 5322:

   atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
                       "!" / "#" /        ;  characters not including
                       "$" / "%" /        ;  specials.  Used for atoms.
                       "&" / "'" /
                       "*" / "+" /
                       "-" / "/" /
                       "=" / "?" /
                       "^" / "_" /
                       "`" / "{" /
                       "|" / "}" /
                       "~"

Единственным исключением из требования для @ и домена в адресе получателя является то, что зарезервированный адрес postmaster может быть использован без домена для отправки электронного письма администратору соответствующего почтового сервера.

Даже если бы Postfix достаточно расслабил парсинг, чтобы не жаловаться на две синтаксические ошибки, я полагаю, что вы, вероятно, не настроили Postfix на то, чтобы он знал, как доставлять письмо в Company S.A. John Smith.

Следующий вопрос, тогда почему Outlook производит такую некорректную RCPT команду в первую очередь. Чтобы понять это, вам нужно посмотреть на письмо, на которое вы отвечаете на стороне клиента, чтобы увидеть, как выглядят заголовки From и Reply-To в письме.

.
0
ответ дан 4 December 2019 в 15:49

Теги

Похожие вопросы