目录

Module ngx_mail_proxy_module

优质
小牛编辑
140浏览
2023-12-01

Directives

syntax:proxy_buffer size;
default:
proxy_buffer 4k|8k;
context:mail, server

Sets size of the buffer used for proxying. The buffer size is equal to one memory page by default. Depending on a platform, this is either 4K or 8K.

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

Defines whether to pass the error message obtained during an authentication on the backend to the client.

Usually, if the authentication in nginx was successful, backend can’t return an error, but if it nonetheless exists, this means there is some problem inside. In such cases the backend message can contain the information that should not be shown to the client. However responding with an error for the correct password is a normal behavior of some POP3 servers. For example, CommuniGatePro informs user about mailbox overflow or other events by periodically outputting the authentication error. The directive should be enabled in this case.

syntax:proxy_timeout timeout;
default:
proxy_timeout 24h;
context:mail, server

Defines a timeout used after the proxying to the backend had started.

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

Enables or disables issuing of the XCLIENT command upon the connection to the SMTP backend. For the XCLIENT command to work it is required to have Postfix with the patch, which adds the LOGIN parameter. If the XCLIENT command is not used, the MTA will be unable to write the client’s IP/HELO/LOGIN to the log and apply various limitations based on this data.

If the xclient is enabled, then upon a backend connection nginx first issues

EHLO server_name

and then

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

If the client upon a connection to nginx issued the EHLO, then the XCLIENT command will pass the PROTO=ESMTP. Otherwise, PROTO=SMTP will be passed. The IP address of a client is specified in the ADDR parameter, and since nginx does not use DNS to resolve the hostname, the NAME=[UNAVAILABLE] is specified.

If the xclient is disabled, then the EHLO is issued upon the connection to the backend if the client had passed it and the HELO otherwise.