Почтовый агент Postfix позволяет задавать различные ограничения, таймауты и лимиты. В данной инструкции мы рассмотрим примеры, как это сделать. Используемые значения подойдут для средне статистического сервера, однако, в каждой среде необходимо наблюдение и приведение параметром к оптимальному виду.
Редактирование конфигурационного файла
Размер почтового ящика
Размер отправляемого сообщения
Количество сообщений
Очередь сообщений
Таймаут на отправку
Сообщения об ошибках
Ошибка message size exceeds fixed limit
Работа с конфигом postfix
Изменения делаем в конфигурационном файле:
vi /etc/postfix/main.cf
* для FreeBSD путь будет /usr/local/etc/postfix/main.cf .
После редактирования не забываем перечитывать изменения командой:
systemctl reload postfix
* для FreeBSD или старых систем на базе Linux вводим service postfix restart .
Для установки квоты на почтовые ящики редактируем следующее:
mailbox_size_limit = 209715200
virtual_mailbox_limit = 209715200
* значение указывается в байтах. В данном примере установлены квоты для почтовых ящиков и виртуальных почтовых ящиков в 200 мб . Для удобства, воспользуйтесь конвертером мегабайт .
Чтобы снять ограничения, можно выставить значения в 0:
mailbox_size_limit = 0
virtual_mailbox_limit = 0
Открываем конфигурационный файл, находим и правим следующее (если строки нет, создаем):
message_size_limit = 73400320
* в данном примере установлено ограничение на размер письма в 70 мб .
Необходимо, чтобы данный размер не превышал размер почтового ящика (mailbox_size_limit и virtual_mailbox_limit, которые по умолчанию имеют значения 51200000 или 50 мб), в противном случае, в логе мы увидим ошибку fatal: main.cf configuration error: mailbox_size_limit is smaller than message_size_limit .
Для этого можно либо задать значения равные (или больше) message_size_limit:
message_size_limit = 73400320
mailbox_size_limit = 73400320
virtual_mailbox_limit = 73400320
… либо отключить ограничения:
message_size_limit = 73400320
mailbox_size_limit = 0
virtual_mailbox_limit = 0
В конфигурационном файле добавляем такие строки:
anvil_rate_time_unit = 60s
smtpd_client_message_rate_limit = 200
smtpd_client_recipient_rate_limit = 60
smtpd_client_connection_count_limit = 20
smtpd_client_connection_rate_limit = 40
* в данном примере мы установили следующие ограничения на количество отправляемых писем:
queue_run_delay = 5m
minimal_backoff_time = 10m
maximal_backoff_time = 15m
maximal_queue_lifetime = 1d
* где queue_run_delay задает время, как часто сообщения из очереди будут отправляться повторно; minimal_backoff_time устанавливает время, на которое будет отложена отправка сообщений, которые не были отправлены по причине временных неисправностей (например, принимающий сервер не отвечает или просит повторить запрос позже), но не позднее maximal_backoff_time ; параметр maximal_queue_lifetime установит, через какой период перестать делать попытки при отправке сообщения и вернуть его отправителю с ошибкой.
smtp_data_done_timeout = 600s
smtp_data_init_timeout = 120s
smtp_data_xfer_timeout = 180s
* где smtp_data_done_timeout — ограничение времени для отправки сообщения; smtp_data_init_timeout — ограничение времени для отправки команды SMTP DATA и для получения ответа удаленного SMTP-сервера; smtp_data_xfer_timeout — ограничение времени для отправки содержимого сообщений.
smtpd_error_sleep_time = 3s
smtpd_soft_error_limit = 5
smtpd_hard_error_limit = 10
* где:
Если сталкиваемся с сообщением «552 5.3.4 message size exceeds fixed limit» (переводится как «Размер сообщения превышает установленные ограничения»), значит отправляемое письмо не вписывается в установленные лимиты. Чтобы исправить ситуацию, уменьшаем размер сообщения или редактируем лимиты (пункты 1 и 2).
То есть, размер message_size_limit не должен превышать mailbox_size_limit и virtual_mailbox_limit.
Неколько полезных консольных команд по работе с конфигурацией.
1. Посмотреть значение параметра по умолчанию:
postconf -d <Параметр>
Например:
postconf -d mailbox_size_limit
2. Посмотреть текущее значение параметра:
postconf -n <Параметр>
Например:
postconf -n message_size_limit
3. Изменить значение:
postconf -e «<Параметр = значение>»
Например:
postconf -e «virtual_mailbox_limit = 0»
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…