Postfix ограничение размера письма. Почтовый сервер: Увеличение размера вложения. Неправильный адрес получателя

Предпосылка: Почтовый сервер реализован на связке postfix+dovecot+roundcube. Вебинтерфейс roundcube во всплывающем окне "Добавить вложение" указывает: Максимальный размер файла 2 Мб. Соответственно файлы большего размера не прикрепляются.

Примечание : postfix определяет ограничения не вложения, а всего письма. В умолчательной конфигурации дефолтное ограничение размера письма было 10Мб. Следовательно Roundcube, выводя сообщение о максимальном размере в 2Мб, никоим образом не ориентируется на конфигурацию postfix. Будучи приложением, написанным на php, Roundcube ориентируется на конфигурацию сервера php. Однако необходимо помнить, что размер письма состоит не только из вложения, а так же из текста письма и служебного кода. Следовательно необходимо установить большее значение допустимого размера письма, чем величина допустимого размера вложения.

1. В конфигурационный файл /etc/postfix/main.cf , необходимо внести параметр, опретеляющий максимально-допустимый размер письма,так как в умолчательной конфигурации он отсутствует. Например, установить в качестве максимально-допустимого размера почтового сообщения 25 Мб.

# postconf -e message_size_limit=25600000

# postfix reload

При этом необходимо убедиться, что размер письма не превышает максимально-допустимого размера почтового ящика пользователя.

# postconf -d - выводит умолчательные настройки сервера

mailbox_size_limit = 51200000

message_size_limit = 25600000

virtual_mailbox_limit = 51200000

Из листинга видно, что при максимальном размере ящика в 50Мб мы увеличили размер письма до 25Мб. Так ящик долго не протянет. В таком случае целесообразно увеличить и размер ящика например до 200Мб.

Опять таки при просмотре конфигурационного файла параметры mailbox_size_limit и virtual_mailbox_limit мы не найдем, поэтому добавляем их:

# postconf -e mailbox_size_limit = 204800000

# postconf -e virtual_mailbox_limi = 204800000

# service postfix restart

Проверяем фактические значения:

# postconf -n mailbox_size_limit
mailbox_size_limit = 204800000
# postconf -n virtual_mailbox_limit
virtual_mailbox_limit = 204800000
# postconf -n message_size_limit
message_size_limit = 25600000
#

2 . Все вышеперечисленные манипуляции бессмысленны пока мы не разрешим php работать с файлами такого размера.

Максимальный размер файла, который можно закачать с помощью php-скрипта определяется в файле /etc/php.ini

; Maximum size of POST data that PHP will accept.

post_max_size = 16M

; Maximum allowed size for uploaded files.

upload_max_filesize = 16M

; Maximum amount of memory a script may consume

memory_limit = 64M

После редактирования php.ini необходимо зарестартить apache

#service httpd restart

3. Если сессия пользователя roundcube все это время была открыта, то необходимо переавторизоваться.

Довольно часто в ходе работы корпоративным пользователям требуется отправлять крупные вложения через почтовый клиент, при этом они могут столкнутся с ошибкой отправки письма.

Outlook

Все дело в том, что в почтовом клиенте Outlook (в т.ч. в версиях 2010 / 2013 / 2016) существует ограничение на максимальный размер вложения к письму – 20 Мб. Причем, не имеет значения, прикреплен ли к письму один большой файл или несколько мелких – лимит на общий размер вложений будет всегда 20 Мб.

При попытке отправить письмо размером более 20 Мб в Outlook появляется окно с ошибкой - The attachment size exceeds the allowable (размер вложения превышает допустимый предел):

В том случае, если ваш почтовый сервер и сервер получателя поддерживает больший размер почтовых сообщений, лимит на размер вложений в Outlook можно увеличить.

Изменить ограничение на максимальный размер вложений в Outlook можно только через реестр, в графическом интерфейсе Outlook такая настройка отсутствует.

Порядок действий


После внесенных изменений к письму в Outlook можно прикрепить вложение размером, больше чем 20 мб (в нашем примере мы прикрепили к письму pst файл размером 58 Мб).

В том случае, если ваш почтовый сервер или сервер отправителя не поддерживают письма большого размера, при отправке большого письма вы получите отбойник о недоставке (NDR-Non delivery report), в котором будет указано, что превышен максимальный размер письма. Ниже приведены популярные варианты текста подобного отбойника:

  • Attachment size exceeds the allowable limit
  • 552: Message size exceeds maximum permitted
  • System Undeliverable, message size exceeds outgoing message size limit
  • The message was not sent; reduce the message size and try again

MS Exchange

В Exchange можно изменить допустимый размер письма на трех различных уровнях:

  • В настройках транспорта организации Exchange
  • В параметрах отправляющих/принимающих коннекторов
  • В настройках ящика конкретного пользователя

Текущие лимиты можно посмотреть через Exchange Management Console (EMC), но гораздо проще и быстрее воспользоваться PowerShell. В консоли Exchange Management Shell, или после подключения к Office 365 через удаленную PowerShell сессию, выполните команды:

Get-transportconfig | ft maxsendsize, maxreceivesize get-receiveconnector | ft name, maxmessagesize get-sendconnector | ft name, maxmessagesize get-mailbox administrator |ft Name, Maxsendsize, maxreceivesize

Команды должны вернуть примерно такие результаты, содержащие текущие настройки лимитов:

  • В параметрах транспорта всей организации размер указано, что принимаемого/отправляемого письма не должен быть больше чем 25 Мб
  • На всех коннекторах стоит лимит 10 мб
  • Для почтового ящика администратора лимит на размер писем не задан (unlimited)


Естественно, в последней команде выполняется проверка лимитов только для одного ящика. Вывести лимиты на размер писем для всех пользователей организации можно так:

Get-mailbox |ft Name, Maxsendsize, maxreceivesize

Чтобы увеличить максимальный размер письма (как принимаемого, так и отправляемого), принимаемого транспортной службой Exchange с 25 до 100 Мб, выполните команду:

Set-TransportConfig -MaxSendSize 100MB -MaxReceiveSize 100MB

Синтаксис команды смены лимита на размер писем для коннекторов аналогичен, однако команду смены придется выполнить для каждого коннектора.

Set-SendConnector "Connector1" – MaxMessageSize 100Mb Set-ReceiveConnector "DefaultConnector1" -MaxmessageSize 100MB

Или для всех коннекторов:

Get-SendConnector | Set-SendConnector -MaxmessageSize 100MB Get-ReceiveConnector | Set-ReceiveConnector -MaxmessageSize 100MB

Аналогичным образом можно изменить лимит для всех ящиков организации:

Get-Mailbox | Set-Mailbox -MaxSendSize 100MB -MaxReceiveSize 100MB

Заданные таким образом лимиты ограничивают максимальный размер письма независимо от того, содержит ли оно вложение или нет.

Использование веб-интерфейса

Есть другой вариант - через веб-интерфейс. Открываем центр администрирования Exchange и переходим в раздел поток обработки почты -> соединители отправки -> параметры транспорта организации:


и выставляем требуемый максимальный объем вложения. Обращаем ваше внимание - при пересылке на внешний сервер, происходит кодирование вложение в формате MIME64, что увеличивает итоговый объем письма примерно на 30%.


Мы также готовы оказать помощь в любых настройках MS Exchange.

Нашим клиентам мы предлагаем реализацию данного проекта и последующее ИТ-обслуживание в рамках ИТ-аутсорсинга .

Альтернативным вариантом является - взять в аренду уже настроенный сервер Exchange с обслуживанием или подключиться к публичному облачному Exchange на базе структуры EFSOL.

Если вы получили письмо от Mailer-Daemon с темой «Undelivered Mail Returned to Sender», значит отправленное письмо не было доставлено до одного или нескольких получателей. Причина, по которой исходное письмо не доставлено, указана в конце уведомления на английском языке. Наиболее распространенные причины указаны ниже.

Неправильный адрес получателя


User not found
User unknown
No such user here
Unrouteable address
Invalid mailbox
Mailbox unavailable

Такая ошибка может означать, что вы пытаетесь отправить письмо на несуществующий адрес. Уточните адрес получателя и попробуйте снова.

Пример сообщения об ошибке:
: host mail.example.com said: 550 5.1.1
: Recipient address rejected: User unknown in local
recipient table (in reply to RCPT TO command)

В почтовом ящике адресата нет свободного места

Сообщение об ошибке содержит строчки:
account is full
Quota exceeded
User has exhausted allowed storage space
error writing message: Disk quota exceeded

Размер письма больше, чем ограничение на сервере получателя

На сервере получателя установлено ограничение на максимальный размер письма. Если вы отправляете несколько файлов, попробуйте их отправить в нескольких разных письмах.

Пример:
message size 7520647 exceeds size limit 6000000 of server mail.example.com

Это значит, что было отправлено письмо размером 7,5 мегабайт, а сервер получателя принимает письма размером не более 6 мегабайт.

Сервер получателя не принимает почту

Сообщение об ошибке содержит строчку:
Operation timed out

Сервер получателя не работает. Возможно, вы ошиблись в адресе получателя и письмо отправлялось не на тот сервер. Если адрес был указан правильно, то попробуйте связаться с адресатом, используя другой адрес.



Поделиться