Изменение максимального размера почты в Postfix

Вопрос или проблема

При отправке большого письма на новый сервер CentOS6, работающий под управлением Postfix в качестве MTA, возвращается следующее сообщение:

попытались доставить ваше сообщение, но оно было отклонено доменом получателя. Мы рекомендуем связаться с другим провайдером электронной почты для получения дополнительной информации о причине этой ошибки. Ошибка, которую вернул другой сервер: 552 552 5.3.4 Ошибка: размер файла сообщения слишком велик (состояние 18)

Я нашел следующее предложение, но не понимаю, куда его нужно добавить в файле main.cf:

Это было вызвано Postfix и его ограничением не только на сообщения, но и на размеры почтовых ящиков.

Мне нужно было добавить эту настройку в /etc/postfix/main.cf:

message_size_limit = 31457280

Как можно увеличить максимальный размер почты (включая вложения) в Postfix?

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

Согласно официальной документации Postfix:
message_size_limit (по умолчанию: 10240000) Максимальный размер в байтах сообщения, включая информацию об обертке. Примечание: будьте осторожны при внесении изменений. Чрезмерно малые значения приведут к потере уведомлений о недоставке, когда размер сообщения об ошибке превышает лимит размера сообщения локального или удаленного MTA.

Кроме того, размер по умолчанию для почтового ящика в 50M может предотвратить доставку почты, особенно после увеличения разрешенного размера сообщения. Для увеличения максимального размера почтового ящика на пользователя добавьте mailbox_size_limit = <размер в байтах> в main.cf.

Кроме того, как отметил Иан Спаркс, если вы используете конфигурацию виртуального почтового ящика, вам может понадобиться установить virtual_mailbox_limit = <size_in_bytes>.

Да, вы правы: message_size_limit является директивой конфигурации, которую вам нужно. Поместите ее где угодно в файле main.cf и перезагрузите (или перезапустите) Postfix.

Вы можете использовать postconf для проверки текущего установленного значения:

postconf message_size_limit

Будьте осторожны, устанавливая этот лимит на высокое значение. Вам нужно хотя бы в 1.5 раза больше свободного места, чем message_size_limit, на разделе, где расположен очередь Postfix. Если у вас недостаточно свободного места, тогда все сообщения будут отклонены, даже если они весят всего несколько килобайт. И если вы получите одно сообщение такого размера, а затем пространство превысит предел (во время окончательной доставки почтового ящика), все последующие сообщения будут отклонены. Из-за нехватки места.

Также обратите внимание: электронная почта не является протоколом передачи файлов. См. этот вопрос и ответ: Почему у нас все еще такие небольшие ограничения на размер вложений электронной почты?

Не забудьте установить

virtual_mailbox_limit = <размер_в_байтах>

если вы используете конфигурацию виртуального почтового ящика. У меня ушло довольно много времени, чтобы это выяснить, похоже, никто об этом не говорит. 😉

Для всех, кто ищет ответ для новых версий Postfix (3+) , вам следует задать message_size_limit равным числу как минимум в 1.5 раза выше, чем реальное сообщение, которое вы хотите отправить. Также этот лимит должен быть меньше, чем mailbox_size_limit.

Например, если вы хотите, чтобы клиенты/программы могли отправлять почту размером как минимум 30 МБ, вам нужно установить message_size_limit = 47185920, т.е. 45 МБ с учетом грубого увеличения размера в 1.5 раз (так как сообщения передаются в кодировке mime и, следовательно, размер увеличивается на некоторый коэффициент), т.е. 30 * 1.5 = 45 МБ (47185920 байт) .

Примечание: Этот тред упоминает математику, требуемую для уменьшения сообщения на фактор 1.37. Для безопасности мы можем считать это 1.5 раз.

Я использую iredmail roundcube postfix

отредактируйте ваш /etc/nginx/conf-available/client_max_body_size.conf
установите client_max_body_size 256m;
systemctl restart nginx

vim /etc/php/7.0/fpm/php.ini
upload_max_filesize = 128M;
post_max_size = 130M;
memory_limit = 256M;

service php7.0-fpm restart

vim /opt/www/roundcubemail/.htaccess

Убедитесь, что они меньше или равны параметрам php.ini

Для вашего сервера https://docs.iredmail.org/change.mail.attachment.size.html

postconf -e mailbox_size_limit=124857600  # это НЕ максимальный размер вашего почтового ящика, который редактируется в вашей панели администратора iredmail

postconf -e message_size_limit=114857600

systemctl reload postfix
Или, возможно:

systemctl restart postfix

Не забудьте очистить кэш и перезапустить вашу веб-страницу roundcube 😉

Ответ или решение

Изменение максимального размера почты в Postfix

Если вы столкнулись с ошибкой при отправке больших электронных писем через Postfix на сервере под управлением CentOS6, такой как "552 5.3.4 Error: message file too big", это может быть связано с установленными ограничениями на размер сообщений. В данной статье мы рассмотри, как увеличить максимальный размер почты, включая вложения, в Postfix.

Параметры конфигурации Postfix

Чтобы изменить максимальный размер почты, необходимо внести изменения в файл конфигурации Postfix, который обычно находится по пути /etc/postfix/main.cf. В этом файле вы можете указать два основных параметра:

  1. message_size_limit — максимальный размер сообщения в байтах, включая информацию об отправителе и получателе.
  2. mailbox_size_limit — максимальный размер почтового ящика для отдельного пользователя.

Шаги для изменения максимального размера сообщения

  1. Редактирование конфигурационного файла:

    Откройте файл конфигурации Postfix:

    sudo vi /etc/postfix/main.cf

    Добавьте или измените следующие строки:

    message_size_limit = 31457280  # 30 MB
    mailbox_size_limit = 52428800  # 50 MB

    Примечание: Рекомендуется устанавливать значение message_size_limit как минимум в 1.5 раза больше, чем максимальный размер потенциально отправляемых сообщений, из-за необходимого пространства для MIME-кодирования. Например, для максимального размера 30 MB введите:

    message_size_limit = 47185920  # 45 MB
  2. Если используется виртуальная почта:

    Если ваша конфигурация использует виртуальные почтовые ящики, вам может понадобиться дополнительно задать предел virtual_mailbox_limit:

    virtual_mailbox_limit = 52428800  # 50 MB
  3. Проверка конфигурации:

    После внесения изменений вы можете проверить текущее значение установленного лимита сообщений с помощью команды:

    postconf message_size_limit
  4. Перезапуск Postfix:

    Чтобы применить изменения, выполняем перезапуск службы Postfix:

    sudo systemctl restart postfix

Обеспечение свободного места

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

Дополнительные параметры

Если работаете с веб-интерфейсами, такими как Roundcube, не забудьте также проверить и изменить настройки PHP:

  1. Внесите изменения в файл php.ini:

    sudo vi /etc/php/7.0/fpm/php.ini

    Установите параметры как:

    upload_max_filesize = 128M
    post_max_size = 130M
  2. После изменения всех конфигураций следует перезапустить необходимые службы:

    sudo systemctl restart php7.0-fpm

Также, если используется Nginx, проверяйте настройки:

client_max_body_size 256m;

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...