This translation may be out of date.
Check the English version
for recent changes.
This module is not built by default, it should be
enabled with
the --with-mail configuration parameter.
Example configuration
worker_processes 1;
error_log /var/log/nginx/error.log info;
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
[bind];
|
|
default:
|
—
|
|
context:
|
server
|
Sets an address and a port for for a socket,
on which the server will accept requests.
Only port may be specified.
An address may also be a hostname, for example:
listen 127.0.0.1:110;
listen *:110;
listen 110; # то же, что и *:110
listen localhost:110;
IPv6 addresses (0.7.58) are specified in square brackets:
listen [::1]:110;
listen [::]:110;
UNIX-domain sockets (1.3.5) are specified with the “unix:”
prefix:
listen unix:/var/run/nginx.sock;
The optional bind parameter
instructs to make a separate bind()
call for a given address:port pair.
The fact is that nginx will bind() only to
*:port
if there are several listen directives with
the same port but different addresses, and one of the
listen directives listens on all addresses
for the given port (*:port).
It should be noted that the getsockname() system call will be
made in this case to determine an address that accepted a connection.
Different virtual servers must listen on different
address:port pairs.
|
syntax:
|
protocol
imap |
pop3 |
smtp;
|
|
default:
|
—
|
|
context:
|
server
|
Sets the protocol of a proxied server.
Supported protocols are
IMAP,
POP3 and
SMTP.
If the directive is not set, the protocol can be detected automatically
basing on the well-known port specified in the listen
directive:
-
imap: 143, 993
-
pop3: 110, 995
-
smtp: 25, 587, 465
Unnecessary protocols can be disabled using the
configuration
parameters --without-mail_imap_module,
--without-mail_pop3_module and
--without-mail_smtp_module.
|
syntax:
|
server { ... }
|
|
default:
|
—
|
|
context:
|
mail
|
Sets a configuration for the virtual server.
|
syntax:
|
server_name name;
|
|
default:
|
server_name hostname;
|
|
context:
|
mail, server
|
Sets a name of the virtual server, used:
-
in the initial POP3/SMTP server greeting;
-
in the salt during the SASL CRAM-MD5 authentication;
-
in the
EHLO command on the SMTP backend connection,
if the xclient command
is turned on.
|
syntax:
|
so_keepalive on | off;
|
|
default:
|
so_keepalive off;
|
|
context:
|
mail, server
|
Controls if the “TCP keepalive” mode should be enabled on the client’s
connection (SO_KEEPALIVE socket parameter) on the
proxied server connection.
|
syntax:
|
timeout time;
|
|
default:
|
timeout 60s;
|
|
context:
|
mail, server
|
Sets the timeout which is used before proxying to the backend started.
|