Уважаемые коллеги помогите разобраться или объясните причину такой ситуации.
Есть связка Postfix relay на FreeBSD + сервер Exchange 2010.Есть настройки разрешающие максимальный размер почтового сообщения 30 мб как на Postfix так и на Exchange. Однако вот что происходит:
При отправке письма с Exchange с вложением 27мб на внешний адрес получаю отчет о не доставке:
"Это сообщение не было доставлено ни одному адресату, поскольку его размер слишком велик. Предельный размер составляет 30 МБ. Размер этого сообщения - 37 МБ.
xyz@mail.ru
Сообщение превышает максимально допустимый размер сообщений. Уменьшите размер сообщения и попытайтесь снова отправить его.Следующая организация отклонила сообщение: postfix.domain.name (это мой relay server)"
Если я отправляю тоже самое сообщение с ящика Exchange на другой ящик Exchange то все проходит нормально. Глобальное ограничение транспорта Exchange всё те же 30 Мб.
Если я отправляю тоже сообщение (27 Мб) с внешнего адреса например майл.ру то вижу что теперь Postfix обрабатывает сообщение затем пересылает его внутрь на Exchange и уже от сервера Exchange получает отказ по причине превышения максимально разрешенного размера собщения.
Может кто сталкивался и может объяснить почему это происходит?
> Может кто сталкивался и может объяснить почему это происходит?http://en.wikipedia.org/wiki/MIME
>> Может кто сталкивался и может объяснить почему это происходит?
> http://en.wikipedia.org/wiki/MIMEТо что к сообщению добавляются заголовки я знаю, но разве может из-за этого размер оригинального сообщения изменяться так значительно?
>>> Может кто сталкивался и может объяснить почему это происходит?
>> http://en.wikipedia.org/wiki/MIME
> То что к сообщению добавляются заголовки я знаю, но разве может из-за
> этого размер оригинального сообщения изменяться так значительно?Не в заголовках дело, а в том, что аттачменты энкодятся в quoted-printable или base-64. Как правило. И в теле письма это выглядит примерно вот так:
--=_6c472a4cb89b2a87327a583fe392173d
Content-Transfer-Encoding: base64
Content-Type: text/plain;
name=*******.*****
Content-Disposition: attachment;
filename=*******.*****MTAuMC4wLjYxLzMyICAgICAgICAgCQkjICBhbnRvbmlvICAgICAgICAKMTAuMC4wLjMzLzMyICAg
ICAgICAgCQkjICBodW1tZXIKCjEwLjEuNi41LzMyICAgICAgICAgICAgICAgICAgICMgIFppbWxr
YSAtIEthZHJpCjEwLjEuMTkuMTAvMzIgICAgICAgICAgICAgICAgICAgIyAgdmlzbmlrCjEwLjEu
MTkuMTEvMzIgICAgICAgICAgICAgICAgICAgIyAgTi5FLgoxMC4xLjE5LjYyLzMyICAgICAgICAg
ICAgICAgICAgICMgIFJvc3RpawoxMC4xLjIyLjIvMzIgICAgICAgICAgICAgICAgICAgICMgIE5V
TkkKMTAuMS4yMy4xLzMyICAgICAgICAgICAgICAgICAgICAjICBOVU5JCjEwLjEuMjUuMS8zMiAg
ICAgICAgICAgICAgICAgICAgIyAgTmljawoxMC4xLjI5LjIwMC8zMiAgICAgICAgICAgICAgICAg
. . . . . .
При этом закодированый аттачмент растет в размере, а МТА при приеме ориентируется не на исходный, а на кодированый, фактический размер аттача. Поэтому письмо с аттачем в 27 метров после МИМЕ-энкодинга может распухнуть до 37 метров и не пролезть в лимит.
> Если я отправляю тоже самое сообщение с ящика Exchange на другой ящик
> Exchange то все проходит нормально. Глобальное ограничение транспорта Exchange всё те
> же 30 Мб.Посмотрите в опциях, для локальной доставки это ограничение может быть больше.
Можете наверное хоть 100ГБ вложение переслать...> Если я отправляю тоже сообщение (27 Мб) с внешнего адреса например майл.ру
> то вижу что теперь Postfix обрабатывает сообщениеОчевидно ему все равно какой размер письма... он же релей всего лишь.
> на Exchange и уже от сервера Exchange получает отказ по причине
> превышения максимально разрешенного размера собщения.Логично.
> Может кто сталкивался и может объяснить почему это происходит?
Так и должно быть. При вложении файла в письмо - происходит его кодирование (смысл которого- в замене всех нечитаемых знаков на читаемые...и остальных тоже), при этом его размер увеличивается примерно в два раза.
Спасибо за ответы теперь всё понял!!
Вот даже описание нашёл (http://techhelp.santovec.us/decode.htm) в котором сказано
Base64 results in a transmitted message about 37% larger than the original file
>> Если я отправляю тоже самое сообщение с ящика Exchange на другой ящик
>> Exchange то все проходит нормально. Глобальное ограничение транспорта Exchange всё те
>> же 30 Мб.
> Посмотрите в опциях, для локальной доставки это ограничение может быть больше.
> Можете наверное хоть 100ГБ вложение переслать...
>> Если я отправляю тоже сообщение (27 Мб) с внешнего адреса например майл.ру
>> то вижу что теперь Postfix обрабатывает сообщение
> Очевидно ему все равно какой размер письма... он же релей всего лишь.Это как так? Как это связано релей - не релей, есть ящики - нет ящиков.
220 mail.e.ru ESMTP Postfix
ehlo mail.ru
250-mail.e.ru
250-PIPELINING
250-SIZE 51200000
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
>> на Exchange и уже от сервера Exchange получает отказ по причине
>> превышения максимально разрешенного размера собщения.
> Логично.И в чем логика? Кодирование произошло на клиенте. Кодированное письмо пришло на Postfix - ушло такое же письмо + заголовки от Postfix.
>> Может кто сталкивался и может объяснить почему это происходит?
> Так и должно быть. При вложении файла в письмо - происходит его
> кодирование (смысл которого- в замене всех нечитаемых знаков на читаемые...и остальных
> тоже), при этом его размер увеличивается примерно в два раза.
>>> Если я отправляю тоже самое сообщение с ящика Exchange на другой ящик
>>> Exchange то все проходит нормально. Глобальное ограничение транспорта Exchange всё те
>>> же 30 Мб.
>> Посмотрите в опциях, для локальной доставки это ограничение может быть больше.
>> Можете наверное хоть 100ГБ вложение переслать...
>>> Если я отправляю тоже сообщение (27 Мб) с внешнего адреса например майл.ру
>>> то вижу что теперь Postfix обрабатывает сообщение
>> Очевидно ему все равно какой размер письма... он же релей всего лишь.
> Это как так? Как это связано релей - не релей, есть ящики
> - нет ящиков.Настройками постфикса. Ему может быть все равно, какой размер письма он принимает.
Релей не обязан знать какие ограничения на размер письма стоят на конечном сервере и есть ли там таковой юзер вообще.
Поэтому через релей письмо проходит, а от ексченджа получает отлуп.>>> на Exchange и уже от сервера Exchange получает отказ по причине
>>> превышения максимально разрешенного размера собщения.
>> Логично.
> И в чем логика? Кодирование произошло на клиенте. Кодированное письмо пришло на
> Postfix - ушло такое же письмо + заголовки от Postfix.В настройках постфикса. Ему может быть все равно, какой размер письма он принимает.
А конечному серверу которому адресовано письмо - не все равно...
>[оверквотинг удален]
>> - нет ящиков.
> Настройками постфикса. Ему может быть все равно, какой размер письма он принимает.
>>>> на Exchange и уже от сервера Exchange получает отказ по причине
>>>> превышения максимально разрешенного размера собщения.
>>> Логично.
>> И в чем логика? Кодирование произошло на клиенте. Кодированное письмо пришло на
>> Postfix - ушло такое же письмо + заголовки от Postfix.
> В настройках постфикса. Ему может быть все равно, какой размер письма он
> принимает.
> А конечному серверу которому адресовано письмо - не все равно...Но в топике указано. что установлено ограничение в Postfix 30Мб.
Я прошу прощения, я ошибся 27 мб вложение с внешнего адреса через Postfix тоже не прошло а то что прошло (21 Мб) заткнулось на сервере Exchange но это уже оказалась проблема в настройках транспортного сервера-концентратора, там оказалось ещё одно место где надо было увеличить дефолтные 10 мб до 30, после этого вложение прошло.
Но в принципе я получил ответ который проясняет почему по SMTP сообщения которые вроде подпадают под лимит все равно не проходят. Например вот 23 мб вложение уже не проходит через SMTP сервер с 30Мб ограничением.
> Я прошу прощения, я ошибся 27 мб вложение с внешнего адреса через
> Postfix тоже не прошло а то что прошло (21 Мб) заткнулось
> на сервере Exchange но это уже оказалась проблема в настройках транспортного
> сервера-концентратора, там оказалось ещё одно место где надо было увеличить дефолтные
> 10 мб до 30, после этого вложение прошло.
> Но в принципе я получил ответ который проясняет почему по SMTP сообщения
> которые вроде подпадают под лимит все равно не проходят. Например вот
> 23 мб вложение уже не проходит через SMTP сервер с 30Мб
> ограничением.В клиенте в отправленных посмотри размер сообщения, он уже больше будет чем просто сумма вложений.
> В клиенте в отправленных посмотри размер сообщения, он уже больше будет чем
> просто сумма вложений.В Outlookе есть графа размер но значение совпадает с размером вложения.
>> В клиенте в отправленных посмотри размер сообщения, он уже больше будет чем
>> просто сумма вложений.
> В Outlookе есть графа размер но значение совпадает с размером вложения.Хотя это и логично Outlook не использует SMTP при отправке через Exchange.
>> В клиенте в отправленных посмотри размер сообщения, он уже больше будет чем
>> просто сумма вложений.
> В Outlookе есть графа размер но значение совпадает с размером вложения.У меня не Outlook, но даже в сохранненом черновике размер уже сильно отличается.
>>> В клиенте в отправленных посмотри размер сообщения, он уже больше будет чем
>>> просто сумма вложений.
>> В Outlookе есть графа размер но значение совпадает с размером вложения.
> У меня не Outlook, но даже в сохранненом черновике размер уже сильно
> отличается.- размер закодированного сообщения по определению больше
- реальный размер файла зависит от ФС, на которой он лежит
- итд
- исходя из этого: как ОС и конкретная реализация почтового клиента отображает размер письма, готового к отправке - ее сугубо личное дело.PS
обычно вложения раза в полтора "разбухают" при пересылке (читай после кодировки)...
> Уважаемые коллеги помогите разобраться или объясните причину такой ситуации.
> Есть связка Postfix relay на FreeBSD + сервер Exchange 2010.
> Есть настройки разрешающие максимальный размер почтового сообщения 30 мб как на Postfix
> так и на Exchange. Однако вот что происходит:
> При отправке письма с Exchange с вложением 27мб на внешний адрес получаю
> отчет о не доставке:не задумывались, сколько это вложение весить будет после кодировки, добавления конверта и прочей требухи?
>[оверквотинг удален]
> и попытайтесь снова отправить его.
> Следующая организация отклонила сообщение: postfix.domain.name (это мой relay server)"
> Если я отправляю тоже самое сообщение с ящика Exchange на другой ящик
> Exchange то все проходит нормально. Глобальное ограничение транспорта Exchange всё те
> же 30 Мб.
> Если я отправляю тоже сообщение (27 Мб) с внешнего адреса например майл.ру
> то вижу что теперь Postfix обрабатывает сообщение затем пересылает его внутрь
> на Exchange и уже от сервера Exchange получает отказ по причине
> превышения максимально разрешенного размера собщения.
> Может кто сталкивался и может объяснить почему это происходит?