模块 ngx_mail_core_module
示例:配置 Directivesmax_errors 服务器 resolver_timeout服务器 侦听 邮件 server_name 超时 |
这个模块不是默认构建的,它应该是
enabled with
配置参数。--with-mail
示例配置
worker_processes auto; error_log /var/log/nginx/error.log info; events { worker_connections 1024; } mail { server_name mail.example.com; auth_http localhost:9000/cgi-bin/nginxauth.cgi; imap_capabilities IMAP4rev1 UIDPLUS IDLE LITERAL+ QUOTA; pop3_auth plain apop cram-md5; pop3_capabilities LAST TOP USER PIPELINING UIDL; smtp_auth login plain cram-md5; smtp_capabilities "SIZE 10485760" ENHANCEDSTATUSCODES 8BITMIME DSN; xclient off; server { listen 25; protocol smtp; } server { listen 110; protocol pop3; proxy_pass_error_message on; } server { listen 143; protocol imap; } server { listen 587; protocol smtp; } }
Directives
语法: |
listen
|
---|---|
默认值: | — |
上下文: |
server |
设置 socket 的 和
服务器将接受请求的请求。
可以只指定端口。
地址也可以是主机名,例如:address
port
listen 127.0.0.1:110; listen *:110; listen 110; # same as *:110 listen localhost:110;
IPv6 地址 (0.7.58) 在方括号中指定:
listen [::1]:110; listen [::]:110;
UNIX 域套接字 (1.3.5) 使用 “” 指定
前缀:unix:
listen unix:/var/run/nginx.sock;
不同的服务器必须侦听不同的 : 对。address
port
该参数允许指定所有
此端口接受的连接应在 SSL 模式下工作。ssl
参数 (1.19.8)
允许指定此端口上接受的所有连接都应使用 PROXY
协议。
获取的信息将传递给认证服务器,并可用于更改客户端地址。proxy_protocol
Directives
可以具有几个特定于 socket 相关系统调用的附加参数。listen
-
backlog
=number
- 在调用中设置限制
待处理连接队列的最大长度 (1.9.2)。
默认情况下,在 FreeBSD、DragonFly BSD 和 macOS 上设置为 -1,
以及其他平台上的 511。
backlog
listen()
backlog
-
rcvbuf
=size
- 设置接收缓冲区大小
(选项)用于侦听套接字 (1.11.13)。
SO_RCVBUF
-
sndbuf
=size
- 设置发送缓冲区大小
(选项)用于侦听套接字 (1.11.13)。
SO_SNDBUF
-
bind
- 此参数指示对给定的 address:port 对进行单独调用。
事实是,如果有多个带有
相同的端口但不同的地址,并且其中一个Directives侦听所有地址
对于给定的端口 (),nginx 将仅对 .
应该注意的是,系统调用将是
用于确定接受连接的地址。
如果 、 、 、 、 、
或 parameters
则用于给定的 : 对
将始终进行单独的调用。
bind()
listen
listen
*:
port
bind()
*:
port
getsockname()
backlog
rcvbuf
sndbuf
ipv6only
so_keepalive
address
port
bind()
-
ipv6only
=on
|off
- 此参数确定
(通过 socket 选项)
侦听通配符地址的 IPv6 套接字是只接受 IPv6 连接,还是同时接受 IPv6 和 IPv4 连接。
默认情况下,此参数处于打开状态。
它只能在启动时设置一次。
IPV6_V6ONLY
[::]
-
so_keepalive
=on
||[]:[]:[off
keepidle
keepintvl
keepcnt
] - 此参数配置 “TCP keepalive” 行为
用于侦听套接字。
如果省略此参数,则作系统的设置将为
对 socket 有效。
如果它设置为值 “”,则为套接字打开该选项。
如果它设置为值 “”,则关闭套接字的选项。
某些作系统支持在
使用 、 和 socket 选项的 per-socket 基础。
在此类系统上(目前为 Linux 2.4+、NetBSD 5+ 和
FreeBSD 9.0-STABLE),它们可以被配置
使用 、 和 参数。
可以省略一个或两个参数,在这种情况下,系统默认设置
的相应 socket 选项将生效。
例如
on
SO_KEEPALIVE
off
SO_KEEPALIVE
TCP_KEEPIDLE
TCP_KEEPINTVL
TCP_KEEPCNT
keepidle
keepintvl
keepcnt
将空闲超时 () 设置为 30 分钟, 将探测间隔 () 保留为其系统默认值, 并将 Probes count () 设置为 10 个探针。so_keepalive=30m::10
TCP_KEEPIDLE
TCP_KEEPINTVL
TCP_KEEPCNT
语法: |
mail { ... } |
---|---|
默认值: | — |
上下文: |
main |
提供配置文件上下文,其中邮件服务器Directives 被指定。
语法: |
max_errors |
---|---|
默认值: |
max_errors 5; |
上下文: |
mail ,server |
该Directives出现在版本 1.21.0 中。
设置协议错误数,超过此数后,连接将关闭。
语法: |
protocol
|
---|---|
默认值: | — |
上下文: |
server |
设置代理服务器的协议。 支持的协议包括 IMAP、POP3 和 SMTP。
如果未设置Directives,则可以自动检测协议 基于 listen Directives中指定的已知端口:
-
imap
: 143, 993 -
pop3
: 110, 995 -
smtp
: 25, 587, 465
可以使用配置参数 、 和 来禁用不必要的协议。--without-mail_imap_module
--without-mail_pop3_module
--without-mail_smtp_module
语法: |
resolver
resolver |
---|---|
默认值: |
resolver off; |
上下文: |
mail ,server |
配置用于查找客户端主机名的名称服务器 要将其传递给身份验证服务器,请执行以下作: 以及代理 SMTP 时在 XCLIENT 命令中。 例如:
resolver 127.0.0.1 [::1]:5353;
地址可以指定为域名或 IP 地址, 具有可选端口(1.3.1、1.2.2)。 如果未指定 port,则使用端口 53。 名称服务器以循环方式查询。
在版本 1.1.7 之前,只能配置单个名称服务器。 支持使用 IPv6 地址指定名称服务器 从版本 1.3.1 和 1.2.2 开始。
默认情况下,nginx 将在解析时查找 IPv4 和 IPv6 地址。
如果不需要查找 IPv4 或 IPv6 地址,
(1.23.1) 或
可以指定该参数。ipv4=off
ipv6=off
支持将名称解析为 IPv6 地址 从 1.5.8 版本开始。
默认情况下,nginx 使用响应的 TTL 值缓存答案。
可选参数允许覆盖它:valid
resolver 127.0.0.1 [::1]:5353 valid=30s;
在 1.1.9 版本之前,无法调整缓存时间。 nginx 始终缓存 5 分钟的答案。
为了防止 DNS 欺骗,建议 在适当保护的可信本地网络中配置 DNS 服务器。
可选参数 (1.17.1)
启用请求和响应的 DNS 服务器统计信息的收集
在指定的 .
该参数作为我们商业订阅的一部分提供。status_zone
zone
特殊值禁用解析。off
语法: |
resolver_timeout |
---|---|
默认值: |
resolver_timeout 30s; |
上下文: |
mail ,server |
设置 DNS作的超时,例如:
resolver_timeout 5s;
语法: |
server { ... } |
---|---|
默认值: | — |
上下文: |
mail |
设置 服务器的配置。
语法: |
server_name |
---|---|
默认值: |
server_name hostname; |
上下文: |
mail ,server |
设置使用的服务器名称:
- 在初始 POP3/SMTP 服务器问候语中;
- 在 SASL CRAM-MD5 身份验证期间的盐中;
- 在连接到 SMTP 后端时的命令中,
如果传递 XCLIENT 命令
已启用。
EHLO
如果未指定该Directives,则使用计算机的主机名。
语法: |
timeout |
---|---|
默认值: |
timeout 60s; |
上下文: |
mail ,server |
设置代理到后端开始之前使用的超时。