Mercurial > hg > nginx-site
changeset 1070:73b31b44d3a0
Updated and simplified the "xclient" directive description.
Implementation details are hidden behind the reference XCLIENT documentation.
Adaptation to mail resolver.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Sat, 08 Feb 2014 17:42:42 +0400 |
parents | 71e6daffa4dc |
children | c4c7350041a0 |
files | xml/en/docs/mail/ngx_mail_core_module.xml xml/en/docs/mail/ngx_mail_proxy_module.xml xml/ru/docs/mail/ngx_mail_core_module.xml xml/ru/docs/mail/ngx_mail_proxy_module.xml |
diffstat | 4 files changed, 101 insertions(+), 65 deletions(-) [+] |
line wrap: on
line diff
--- a/xml/en/docs/mail/ngx_mail_core_module.xml Sat Feb 08 17:42:42 2014 +0400 +++ b/xml/en/docs/mail/ngx_mail_core_module.xml Sat Feb 08 17:42:42 2014 +0400 @@ -10,7 +10,7 @@ <module name="Module ngx_mail_core_module" link="/en/docs/mail/ngx_mail_core_module.html" lang="en" - rev="2"> + rev="3"> <section id="summary"> @@ -266,7 +266,6 @@ <para> Sets the server name that is used: - <list type="bullet"> <listitem> @@ -278,9 +277,10 @@ </listitem> <listitem> -in the <literal>EHLO</literal> command on the SMTP backend connection, -if the <link doc="ngx_mail_proxy_module.xml" id="xclient"/> command -is turned on. +in the <literal>EHLO</literal> command when connecting to the SMTP backend, +if the passing of the +<link doc="ngx_mail_proxy_module.xml" id="xclient">XCLIENT</link> command +is enabled. </listitem> </list>
--- a/xml/en/docs/mail/ngx_mail_proxy_module.xml Sat Feb 08 17:42:42 2014 +0400 +++ b/xml/en/docs/mail/ngx_mail_proxy_module.xml Sat Feb 08 17:42:42 2014 +0400 @@ -10,7 +10,7 @@ <module name="Module ngx_mail_proxy_module" link="/en/docs/mail/ngx_mail_proxy_module.html" lang="en" - rev="1"> + rev="2"> <section id="directives" name="Directives"> @@ -95,41 +95,59 @@ <context>server</context> <para> -Enables or disables issuing of the <literal>XCLIENT</literal> command -on connection to the SMTP backend. -The <literal>XCLIENT</literal> command requires -Postfix with the -<link url="http://citrin.ru/nginx:xclient-login-patch">patch</link> -that adds the <literal>LOGIN</literal> parameter. -If the <literal>XCLIENT</literal> command is not used, the MTA will be unable -to write the client’s -<literal>IP</literal>/<literal>HELO</literal>/<literal>LOGIN</literal> +Enables or disables the passing of the +<link url="http://www.postfix.org/XCLIENT_README.html">XCLIENT</link> +command with client parameters when connecting to the SMTP backend. +</para> + +<para> +With <literal>XCLIENT</literal>, the MTA is able to write client information to the log and apply various limitations based on this data. </para> <para> -If <literal>xclient</literal> is enabled, -then on a connection to the backend nginx first issues -<example> -EHLO server_name -</example> -and then -<example> -XCLIENT PROTO=ESMTP HELO=client_hello ADDR=192.168.1.1 LOGIN=good_user NAME=[UNAVAILABLE] -</example> -If the client issues <literal>EHLO</literal> on a connection to nginx, -the <literal>XCLIENT</literal> command will pass -<literal>PROTO=ESMTP</literal>. -Otherwise, it will pass <literal>PROTO=SMTP</literal>. -The IP address of a client is specified in the <literal>ADDR</literal> -parameter, and since nginx does not use DNS to resolve the hostname, -the <literal>NAME=[UNAVAILABLE]</literal> is specified. +If <literal>XCLIENT</literal> is enabled +then nginx passes the following commands when connecting to the backend: +<list type="bullet"> +<listitem> +<literal>EHLO</literal> with the +<link doc="ngx_mail_core_module.xml" id="server_name">server name</link> +</listitem> + +<listitem> +<literal> +XCLIENT +</literal> +</listitem> + +<listitem> +<literal>EHLO</literal> or <literal>HELO</literal>, +as passed by the client +</listitem> +</list> </para> <para> -If <literal>xclient</literal> is disabled, -nginx will issue <literal>EHLO</literal> on a connection to the -backend if the client has passed it, or <literal>HELO</literal>, otherwise. +If the name +<link doc="ngx_mail_core_module.xml" id="resolver">found</link> +by the client IP address points to the same address, +it is passed in the <literal>NAME</literal> parameter +of the <literal>XCLIENT</literal> command. +If the name could not be found, points to a different address, +or <link doc="ngx_mail_core_module.xml" id="resolver"/> is not specified, +the <literal>[UNAVAILABLE]</literal> is passed +in the <literal>NAME</literal> parameter. +If an error has occurred in the process of resolving, +the <literal>[TEMPUNAVAIL]</literal> value is used. +</para> + +<para> +If <literal>XCLIENT</literal> is disabled +then nginx passes the <literal>EHLO</literal> command with the +<link doc="ngx_mail_core_module.xml" id="server_name">server name</link> +when connecting to the backend if the client has passed +<literal>EHLO</literal>, +or <literal>HELO</literal> with the server name, otherwise. </para> </directive>
--- a/xml/ru/docs/mail/ngx_mail_core_module.xml Sat Feb 08 17:42:42 2014 +0400 +++ b/xml/ru/docs/mail/ngx_mail_core_module.xml Sat Feb 08 17:42:42 2014 +0400 @@ -10,7 +10,7 @@ <module name="Модуль ngx_mail_core_module" link="/ru/docs/mail/ngx_mail_core_module.html" lang="ru" - rev="2"> + rev="3"> <section id="summary"> @@ -266,7 +266,6 @@ <para> Задаёт имя сервера, используемое: - <list type="bullet"> <listitem> @@ -279,7 +278,8 @@ <listitem> в команде <literal>EHLO</literal> при подключении к SMTP-бэкенду, -если включена команда <link doc="ngx_mail_proxy_module.xml" id="xclient"/>. +если разрешена передача команды +<link doc="ngx_mail_proxy_module.xml" id="xclient">XCLIENT</link>. </listitem> </list>
--- a/xml/ru/docs/mail/ngx_mail_proxy_module.xml Sat Feb 08 17:42:42 2014 +0400 +++ b/xml/ru/docs/mail/ngx_mail_proxy_module.xml Sat Feb 08 17:42:42 2014 +0400 @@ -10,7 +10,7 @@ <module name="Модуль ngx_mail_proxy_module" link="/ru/docs/mail/ngx_mail_proxy_module.html" lang="ru" - rev="1"> + rev="2"> <section id="directives" name="Директивы"> @@ -95,39 +95,57 @@ <context>server</context> <para> -Разрешает или запрещает передачу команды <literal>XCLIENT</literal> -при подключении к SMTP-бэкенду. -Для работы команды <literal>XCLIENT</literal> необходим Postfix с -<link url="http://citrin.ru/nginx:xclient-login-patch">патчем</link>, -который добавляет параметр <literal>LOGIN</literal>. -Если не использовать <literal>XCLIENT</literal>, то MTA не сможет писать в лог -<literal>IP</literal>/<literal>HELO</literal>/<literal>LOGIN</literal> -клиента и применять различные ограничения на основе этих данных. +Разрешает или запрещает передачу команды +<link url="http://www.postfix.org/XCLIENT_README.html">XCLIENT</link> +с параметрами клиента при подключении к SMTP-бэкенду. +</para> + +<para> +При помощи <literal>XCLIENT</literal> MTA может писать в лог +информацию о клиенте и применять различные ограничения на основе этих данных. </para> <para> -Если <literal>xclient</literal> включено, -то при подключении к бэкенду nginx сначала передаёт -<example> -EHLO server_name -</example> -потом -<example> -XCLIENT PROTO=ESMTP HELO=client_hello ADDR=192.168.1.1 LOGIN=good_user NAME=[UNAVAILABLE] -</example> -Если клиент при подключении к nginx передал <literal>EHLO</literal>, то в -команде <literal>XCLIENT</literal> передаётся <literal>PROTO=ESMTP</literal>. -В противном случае передаётся <literal>PROTO=SMTP</literal>. -В параметре <literal>ADDR</literal> указывается IP-адрес клиента, -а поскольку nginx не обращается к DNS для получения имени хоста, -то указывается <literal>NAME=[UNAVAILABLE]</literal>. +Если команда <literal>XCLIENT</literal> разрешена, +то при подключении к бэкенду nginx посылает ему следующие команды: +<list type="bullet"> +<listitem> +<literal>EHLO</literal> +с <link doc="ngx_mail_core_module.xml" id="server_name">именем сервера</link> +</listitem> + +<listitem> +<literal> +XCLIENT +</literal> +</listitem> + +<listitem> +<literal>EHLO</literal> или <literal>HELO</literal>, +как её передал клиент +</listitem> +</list> </para> <para> -Если же <literal>xclient</literal> выключено, -то при подключении к бэкенду nginx передаёт -<literal>EHLO</literal>, если его передал клиент, -и <literal>HELO</literal> в остальных случаях. +Если <link doc="ngx_mail_core_module.xml" id="resolver">найденное</link> +по IP-адресу клиента имя указывает на тот же адрес, +оно передаётся в параметре <literal>NAME</literal> +команды <literal>XCLIENT</literal>. +Если имя не может быть найдено, указывает на другой адрес, +или не задан <link doc="ngx_mail_core_module.xml" id="resolver"/>, +то в параметре <literal>NAME</literal> передаётся +<literal>[UNAVAILABLE]</literal>. +Если же в процессе поиска имени или адреса произошла ошибка, +передаётся <literal>[TEMPUNAVAIL]</literal>. +</para> + +<para> +Если команда <literal>XCLIENT</literal> запрещена, +то при подключении к бэкенду nginx передаёт команду <literal>EHLO</literal> с +<link doc="ngx_mail_core_module.xml" id="server_name">именем сервера</link>, +если клиент передал <literal>EHLO</literal>, +иначе <literal>HELO</literal> с именем сервера. </para> </directive>