Очередная порция разгрёба. 2E - это "точка", которая ставится после оканчания письма 0D - arriage Return, возврат каретки. Во многих языках программирования этот символ, обозначаемый \r, можно использовать для возврата в начало строчки без перевода строки. В некоторых операционных системах этот же символ, обозначаемый Ctrl-M, ставится в конце каждой строчки текстового файла перед LF. 0A - Line Feed, перевод строки. Сейчас в конце каждой строчки текстового файла ставится либо этот символ, либо CR, либо и тот и другой (CR, затем LF), в зависимости от операционной системы. Во многих языках программирования обозначается \n и при выводе текста приводит к переводу строки.Т.е. E=\r\n - это как раз таки и есть то, что нам надо (\r - для почтовиков построенных, не на базе SMTP (в данном случае exchange), и \n - почтовик, построенный на базе SMTP). Логически рассудить, то должно всё работать. Код окончания письма - 2E 0A - стандарт для SMTP MTA (точка и перевод строки) и 2E 0D 0A - стандарт для почтовиков, типа Exchange (точка, возврат каретки и перевод строки) Получается когда exchange посылает письма через sendmail, он оканчивает письмо кодом 2E 0D 0A, и sendmail его нормально принимает и отправляет письма дальше, кроме моего случае с доменными письмами. Так же вся входящая почта принимается без проблем на sendmail и нормально перенаправляется на exchange (он понимает 2E 0A и 2E 0D 0A) Терь вопрос, какого хр..а exchange при отправке письма внутри домена на другой exchange через sendmail неожиданно прерывает соединения. Как раз вот после ввода кода на окончания письма 2E 0D 0A выходит ошибка 421 4.4.1 collect: unexpected close on connection from exchange и письмо не уходит. Поолучается проблема в самом exchange и его надо ковырять, как бы не вышло, что данную проблему просто исправить не получится. Повторюсь Exchenge v.6.5.7638.2 SP2
|