Содержание

Директивы модуля ngx_mail_proxy_module

Директивы

proxy

syntax: proxy on | off
default: proxy off
context: mail, server

В текущей версии, насколько я могу видеть, нигде не проверяется.

proxy_buffer

syntax: proxy_buffer размер
default: proxy_buffer 4k/8k
context: mail, server

Задаёт размер буфера, используемого при проксировании. По умолчанию размер буфера равен размеру страницы, в зависимости от платформы это или 4 КБ, или 8 КБ.

proxy_pass_error_message

syntax: proxy_pass_error_message on | off
default: proxy_pass_error_message off
context: mail, server

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

Но для некоторых POP3 серверов ошибка в ответ на правильный пароль является штатным поведением. Например CommuniGatePro извещает пользователя о переполнении ящика (или других событиях) периодически выдавая ошибку авторизации. В этом случае стоит указать proxy_error_message on.

proxy_timeout

syntax: proxy_timeout время
default: proxy_timeout 24h
context: mail, server

Таймаут используемый после начала проксирования

xclient

syntax: xclient on | off
default: xclient on
context: mail, server

Передавать или нет команду XCLIENT при подключении к SMTP-бэкенду. Для использования команды XCLIENT необходим Postfix с патчем, добавляющим параметр LOGIN. Если XCLIENT не использовать то в MTA не сможет писать в лог IP/HELO/LOGIN клиента и применять различные ограничения на основе этих данных.

Если xclient включен, то при подключении к бэкенду nginx сначала передает

  EHLO server_name

потом

  XCLIENT PROTO=ESMTP HELO=client_hello ADDR=192.168.1.1 LOGIN=good_user NAME=[UNAVAILABLE]

PROTO=ESMTP передается в случае если клиент при подключении к nginx передал EHLO и PROTO=SMTP в случае если не передавал или передал HELO. В параметре ADDR указывается ip клиента, а поскольку nginx не обращается к DNS для получения имени хоста, то указывается NAME=[UNAVAILABLE]

Если xclient выключен, то при подключении к бэкенду nginx указывает EHLO если его передал клиент и HELO в остальных случаях.