ngx_mail_core_module
Module ngx_mail_core_module
- 示例配置
- 指令
- 听
- 邮件
- 协议
- 解决
- resolver_timeout
- 服务器
- server_name
- 时间到
该模块不是默认生成的,它应该使用--with-mail
配置参数启用。
示例配置
worker_processes 1;
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;
}
}
指令
句法: | 监听地址:port ssl rcvbuf = size bind [so_keepalive = on | off | keepidle:keepintvl:keepcnt]; |
---|---|
默认: | — |
语境: | 服务器 |
设置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模式下工作。
该listen
指令可以具有特定于套接字相关系统调用的几个附加参数。
backlog
= 在限制未决连接队列(1.9.2)队列的最大长度的调用中number
设置backlog
参数listen()
。默认情况下,backlog
在FreeBSD,Dragon
Fly BSD和macOS上设置为-1,在其他平台上设置为511。rcvbuf
= size
设置SO_RCVBUF
侦听套接字(1.11.13)的接收缓冲区大小(选项)。sndbuf
= size
设置SO_SNDBUF
侦听套接字(1.11.13)的发送缓冲区大小(选项)。bind
此参数指示bind()
为给定地址:端口对进行单独调用。事实是,如果有几个listen
指令具有相同的端口但地址不同,并且其中一个listen
指令侦听给定端口的所有地址(*:port
),nginx将bind()
只会*:port
。应该注意的getsockname()
是,在这种情况下系统调用将确定接受连接的地址。如果使用ipv6only
或so_keepalive
参数,那么对于给定的address
:port
对bind()
将始终进行单独的呼叫。ipv6only
= on
| off
此参数确定(通过IPV6_V6ONLY
套接字选项)侦听通配符地址的IPv6套接字是[::]
仅接受IPv6连接还是接受IPv6和IPv4连接。该参数默认打开。它只能在启动时设置一次。so_keepalive
= on
| off
| keepidle
:keepintvl
:keepcnt
此参数配置侦听套接字的“TCP keepalive”行为。如果省略此参数,则操作系统的设置将对套接字有效。如果它被设置为值“ on
”,则SO_KEEPALIVE
该插座的选项被打开。如果它设置为值“ off
”,SO_KEEPALIVE
则关闭套接字选项。在每个插槽的基础使用的TCP保活参数某些操作系统支持设置TCP_KEEPIDLE
,TCP_KEEPINTVL
和TCP_KEEPCNT
套接字选项。在这样的系统(目前,Linux的2.4 +,NetBSD的5+和FreeBSD 9.0-STABLE),它们可以使用配置的keepidle
,keepintvl
和keepcnt
参数。一个或两个参数可以省略,在这种情况下,相应套接字选项的系统默认设置将生效。例如,
so_keepalive=30m::10
会将空闲超时(TCP_KEEPIDLE
)设置为30分钟,将探测间隔(TCP_KEEPINTVL
)保留在其系统默认值下,并将探测计数(TCP_KEEPCNT
)设置为10个探测。
句法: | 邮件{...} |
---|---|
默认: | — |
语境: | 主要 |
提供指定邮件服务器指令的配置文件上下文。
句法: | 协议imap | pop3 | SMTP; |
---|---|
默认: | — |
语境: | 服务器 |
设置代理服务器的协议。支持的协议是IMAP,POP3和SMTP。
如果未指定该指令,则可以根据listen指令中指定的众所周知的端口自动检测协议:
imap
: 143, 993
pop3
: 110, 995
smtp
: 25, 587, 465
不必要的协议可使用的配置参数被禁用--without-mail_imap_module
,--without-mail_pop3_module
和--without-mail_smtp_module
。
句法: | 解析器地址...有效=时间;解析器关闭; |
---|---|
默认: | 解析器关闭; |
语境: | 邮件,服务器 |
将用于查找客户端主机名的名称服务器配置为将其传递给身份验证服务器,并在代理SMTP时将该名称服务器配置到XCLIENT命令中。例如:
resolver 127.0.0.1 [::1]:5353;
地址可以指定为域名或IP地址,以及可选端口(1.3.1,1.2.2)。如果未指定端口,则使用端口53。名称服务器以循环方式查询。
在版本1.1.7之前,只能配置一个名称服务器。从版本1.3.1和1.2.2开始,支持使用IPv6地址指定名称服务器。
默认情况下,nginx使用响应的TTL值缓存答案。可选valid
参数允许覆盖它:
resolver 127.0.0.1 [::1]:5353 valid=30s;
在版本1.1.9之前,调整缓存时间是不可能的,并且nginx始终缓存5分钟内的答案。
特殊值off
禁用解析。
句法: | resolver_timeout时间; |
---|---|
默认: | resolver_timeout 30s; |
语境: | 邮件,服务器 |
为DNS操作设置超时,例如:
resolver_timeout 5s;
句法: | 服务器{...} |
---|---|
默认: | — |
语境: | 邮件 |
设置服务器的配置。
句法: | server_name名称; |
---|---|
默认: | server_name主机名; |
语境: | 邮件,服务器 |
设置使用的服务器名称:
- 在最初的POP3 / SMTP服务器问候中;
- 在SASL CRAM-MD5认证期间的盐中;
- 在
EHLO
连接到SMTP后端的命令中,如果XCLIENT命令的传递被启用。
如果未指定指令,则使用机器的主机名。
句法: | 超时时间; |
---|---|
默认: | 超时60秒; |
语境: | 邮件,服务器 |
设置代理到后端启动之前使用的超时。