<!-- review: finished -->

<a id="mail-proxy"></a>

# Proxy

该模块提供对邮件协议（POP3、IMAP、SMTP）的支持，使服务器能够充当客户端和邮件服务器之间的代理。它与服务器建立连接，使用明文、SSL/TLS 或 STARTTLS 执行安全身份验证，正确路由客户端流量，并支持灵活选择身份验证方法和服务器。

<a id="directives-60"></a>

## 指令

<a id="index-0"></a>

<a id="m-proxy-buffer"></a>

### proxy_buffer

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_buffer` size;   |
|--------------------------------------------------------------------------------------|------------------------|
| 默认值                                                                                  | `proxy_buffer 4k|8k;`  |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | mail, server           |

设置用于代理的缓冲区大小。默认情况下，缓冲区大小等于一个内存页。根据平台的不同，它是 4K 或 8K。

<a id="index-1"></a>

<a id="m-proxy-pass-error-message"></a>

### proxy_pass_error_message

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_pass_error_message` `on` | `off`;   |
|--------------------------------------------------------------------------------------|--------------------------------------------|
| 默认值                                                                                  | `proxy_pass_error_message off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | mail, server                               |

指示是否将后端在身份验证过程中获得的错误消息传递给客户端。

通常，如果在 Angie 中身份验证成功，则后端无法返回错误。如果它仍然返回错误，则意味着发生了一些内部错误。在这种情况下，后端消息可能包含不应显示给客户端的信息。然而，对于某些 POP3 服务器，正确密码的错误响应是正常行为。在这种情况下，应启用该指令。

<a id="index-2"></a>

<a id="m-proxy-protocol"></a>

### proxy_protocol

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_protocol` `on` | `off`;   |
|--------------------------------------------------------------------------------------|----------------------------------|
| 默认值                                                                                  | `proxy_protocol off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | mail, server                     |

为与后端的连接启用 [PROXY 协议](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)。

<a id="index-3"></a>

<a id="m-proxy-smtp-auth"></a>

### proxy_smtp_auth

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_smtp_auth` `on` | `off`;   |
|--------------------------------------------------------------------------------------|-----------------------------------|
| 默认值                                                                                  | `proxy_smtp_auth off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | mail, server                      |

启用或禁用使用 AUTH 命令在 SMTP 后端进行用户身份验证。

如果 [XCLIENT](#m-xclient) 也启用，则 XCLIENT 命令将不会发送 LOGIN 参数。

<a id="index-4"></a>

<a id="m-proxy-timeout"></a>

### proxy_timeout

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_timeout` time;   |
|--------------------------------------------------------------------------------------|-------------------------|
| 默认值                                                                                  | `proxy_timeout 24h;`    |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | mail, server            |

设置客户端或代理服务器连接之间两个连续读或写操作的超时。如果在此时间内未传输任何数据，则连接将被关闭。

<a id="index-5"></a>

<a id="m-xclient"></a>

### xclient

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `xclient` `on` | `off`;   |
|--------------------------------------------------------------------------------------|---------------------------|
| 默认值                                                                                  | `xclient on;`             |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | mail, server              |

启用或禁用在连接到 SMTP 后端时传递带有客户端参数的 [XCLIENT](http://www.postfix.org/XCLIENT_README.html) 命令。

使用 `XCLIENT`，邮件传输代理能够将客户端信息写入日志，并根据这些数据应用各种限制。

如果启用 `XCLIENT`，则在连接到后端时 Angie 会传递以下命令：

* `EHLO` 与 [服务器名称](https://cn.angie.software//angie/docs/configuration/modules/mail/index.md#m-server-name)
* `XCLIENT`
* `EHLO` 或 `HELO`，如客户端所传递

如果通过客户端 IP 地址 [找到](https://cn.angie.software//angie/docs/configuration/modules/mail/index.md#m-resolver) 的名称指向相同地址，则它会在 `XCLIENT` 命令的 `NAME` 参数中传递。如果找不到名称，指向不同的地址，或未指定 [解析器](https://cn.angie.software//angie/docs/configuration/modules/mail/index.md#m-resolver)，则在 `NAME` 参数中传递 `[UNAVAILABLE]`。如果在解析过程中发生错误，则使用 `[TEMPUNAVAIL]` 值。

如果禁用 `XCLIENT`，则在连接到后端时，如果客户端传递了 `EHLO`，Angie 会与 [服务器名称](https://cn.angie.software//angie/docs/configuration/modules/mail/index.md#m-server-name) 一起传递 `EHLO` 命令，否则会与服务器名称一起传递 `HELO`。
