Лимиты в Postfix

Thank you for reading this post, don't forget to subscribe!

1. Размер почтового ящика

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

vi /etc/postfix/main.cf

* для FreeBSD путь будет /usr/local/etc/postfix/main.cf.

 

Для уста­нов­ки кво­ты на поч­то­вые ящи­ки редак­ти­ру­ем следующее:

mailbox_size_limit = 209715200
virtual_mailbox_limit = 209715200

* зна­че­ние ука­зы­ва­ет­ся в бай­тах. В дан­ном при­ме­ре уста­нов­ле­ны кво­ты для поч­то­вых ящи­ков и вир­ту­аль­ных поч­то­вых ящи­ков в 200 мб. Для удоб­ства, вос­поль­зуй­тесь кон­вер­те­ром мегабайт.

Что­бы снять огра­ни­че­ния, мож­но выста­вить зна­че­ния в 0:

mailbox_size_limit = 0
virtual_mailbox_limit = 0

2. Размер отправляемого сообщения

Откры­ва­ем кон­фи­гу­ра­ци­он­ный файл, нахо­дим и пра­вим сле­ду­ю­щее (если стро­ки нет, создаем):

message_size_limit = 31457280

*  в дан­ном при­ме­ре уста­нов­ле­но огра­ни­че­ние на раз­мер пись­ма в 30 мб.

Необ­хо­ди­мо, что­бы дан­ный раз­мер не пре­вы­шал раз­мер поч­то­во­го ящи­ка (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:

mailbox_size_limit = 73400320
virtual_mailbox_limit = 73400320

… либо отклю­чить ограничения:

mailbox_size_limit = 0
virtual_mailbox_limit = 0

3. Количество сообщений

В кон­фи­гу­ра­ци­он­ном фай­ле добав­ля­ем такие строки:

anvil_rate_time_unit = 60s
smtpd_client_message_rate_limit = 100
smtpd_client_recipient_rate_limit = 30
smtpd_client_connection_rate_limit = 20

* в дан­ном при­ме­ре мы уста­но­ви­ли сле­ду­ю­щие огра­ни­че­ния на коли­че­ство отправ­ля­е­мых писем: мож­но отправ­лять толь­ко 100 сооб­ще­ний в мину­ту (60s), при этом коли­че­ство полу­ча­те­лей не долж­но пре­вы­шать 30, а коли­че­ство кон­нек­тов огра­ни­че­но чис­лом 20.

4. Очередь сообщений

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 уста­но­вит, через какой пери­од пере­стать делать попыт­ки при отправ­ке сооб­ще­ния и вер­нуть его отпра­ви­те­лю с ошибкой.

5. Таймаут на отправку сообщений

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 — огра­ни­че­ние вре­ме­ни для отправ­ки содер­жи­мо­го сообщений.

552 5.3.4 message size exceeds fixed limit

Если стал­ки­ва­ем­ся с сооб­ще­ни­ем «552 5.3.4 message size exceeds fixed limit» (пере­во­дит­ся как «Раз­мер сооб­ще­ния пре­вы­ша­ет уста­нов­лен­ные огра­ни­че­ния»), зна­чит отправ­ля­е­мое пись­мо не впи­сы­ва­ет­ся в уста­нов­лен­ные лими­ты. Что­бы испра­вить ситу­а­цию, умень­ша­ем раз­мер сооб­ще­ния или редак­ти­ру­ем лими­ты (пунк­ты 1 и 2).

Работа с конфигом postfix

Неколь­ко полез­ных кон­соль­ных команд по рабо­те с конфигурацией:

Посмот­реть зна­че­ние пара­мет­ра по умолчанию:

postconf -d mailbox_size_limit

Посмот­реть теку­щее зна­че­ние параметра:

postconf -n message_size_limit

Изме­нить значение:

postconf -e "virtual_mailbox_limit = 0"