Module ngx_mail_core_module

默认情况下未构建此模块,应使用--with-mail配置参数启用它。

Example Configuration

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;
    }
}

Directives

Syntax: listen address:port [ssl] [backlog=number] [rcvbuf=size] [sndbuf=size] [bind] [ipv6only=on|off] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
Default:
Context: server

设置服务器将在其上接受请求的套接字的addressport。可以仅指定端口。该地址也可以是主机名,例如:

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;

不同的服务器必须侦听不同的addressport对。

ssl参数允许指定该端口上接受的所有连接均应以 SSL 模式工作。

listen指令可以具有一些特定于套接字相关系统调用的附加参数。

so_keepalive=30m::10

会将闲置超时(TCP_KEEPIDLE)设置为 30 分钟,将探测间隔(TCP_KEEPINTVL)保留为系统默认值,并将探测计数(TCP_KEEPCNT)设置为 10 个探测。

Syntax: mail { ... }
Default:
Context: main

提供在其中指定邮件服务器指令的配置文件上下文。

Syntax: protocol imap | pop3 | smtp;
Default:
Context: server

设置代理服务器的协议。支持的协议是IMAPPOP3SMTP

如果未设置指令,则可以根据listen指令中指定的知名端口自动检测协议:

可以使用configuration参数--without-mail_imap_module--without-mail_pop3_module--without-mail_smtp_module禁用不必要的协议。

Syntax: resolver address ... [valid=time] [ipv6=on|off] [status_zone=zone];

resolver off;
默认值: resolver off;
上下文: mailserver

配置用于查找客户端主机名的名称服务器,以将其传递给authentication server,并在代理 SMTP 时使用XCLIENT命令。例如:

resolver 127.0.0.1 [::1]:5353;

可以使用可选端口(1.3.1,1.2.2)将地址指定为域名或 IP 地址。如果未指定端口,则使用端口 53.以循环方式查询名称服务器。

Note

在版本 1.1.7 之前,只能配置一个名称服务器。从版本 1.3.1 和 1.2.2 开始,支持使用 IPv6 地址指定名称服务器。

默认情况下,nginx 在解析时将同时查找 IPv4 和 IPv6 地址。如果不需要查找 IPv6 地址,则可以指定ipv6=off参数。

Note

从版本 1.5.8 开始,支持将名称解析为 IPv6 地址。

默认情况下,nginx 使用响应的 TTL 值缓存答案。可选的valid参数允许覆盖它:

resolver 127.0.0.1 [::1]:5353 valid=30s;

Note

在 1.1.9 版之前,无法调整缓存时间,nginx 始终将答案缓存 5 分钟。

Note

为防止 DNS 欺骗,建议在适当安全的受信任本地网络中配置 DNS 服务器。

可选的status_zone参数(1.17.1)启用collection的 DNS 服务器统计信息,用于指定zone中的请求和响应。该参数可作为commercial subscription的一部分使用。

特殊值off禁用解析。

Syntax: resolver_timeout time;
Default: resolver_timeout 30s;
Context: mail , server

设置 DNS 操作的超时,例如:

resolver_timeout 5s;

Syntax: server { ... }
Default:
Context: mail

设置服务器的配置。

Syntax: server_name name;
Default: server_name hostname;
Context: mail , server

设置使用的服务器名称:

如果未指定指令,则使用计算机的主机名。

Syntax: timeout time;
Default: timeout 60s;
Context: mail , server

设置在代理到后端开始之前使用的超时。

首页