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>