По умолчанию модули mail не собирается, нужно разрешить его сборку при конфигурировании параметром –with-mail.
# для проксирования pop3/imap/smtp рекомендуется установить равным числу CPU worker_processes 1; error_log /var/log/nginx/error.log info; mail { server_name mail.example.ru; 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; # По RFC 2821 таймаут должен быть 300 секунд timeout 300s; } server { listen 110; protocol pop3; proxy on; proxy_pass_error_message on; } server { listen 143; protocol imap; proxy on; } server { listen 587; protocol smtp; timeout 300s; } }
syntax: imap_capabilities «capability1» [«capability2» .. «capabilityN»]
default: «IMAP4» «IMAP4rev1» «UIDPLUS»
context: mail, server
Директива позволяет указать список расширений протокола IMAP, выдаваемый клиенту по команде CAPABILITY. К этому списку автоматически добавляется STARTTLS если включена директива starttls
В данной директиве имеет смысл указать расширения поддерживаемые pop3-бэкендами на которые проксируются клиенты (если эти расширения относятся к командам используемым после авторизации, когда nginx прозрачно проксирует подключение клиента на бэкенд).
Текущий список стандартизованных расширений опубликован на www.iana.org.
syntax: imap_client_buffer размер
default: 4k/8k
context: mail, server
Задаёт размер буфера, используемого для чтения imap комманд. По умолчанию размер буфера равен размеру страницы, в зависимости от платформы это или 4K, или 8K.
syntax: listen адрес:порт [bind]
default: нет
context: server
Директива задаёт адрес и порт, на которых сервер принимает запросы. Можно указать только порт, кроме того, адрес может быть именем сервера, например:
listen 127.0.0.1:110; listen *:110; listen 110; # то же самое что *:110 listen localhost:110;
Разные виртуальные сервера должны слушать разные пары ip и port.
syntax: pop3_auth [plain] [apop] [cram-md5]
default: plain
context: mail, server
Директива задаёт разрешенные методы аутентификации pop3 клиентов:
syntax: pop3_capabilities «capability1» [«capability2» .. «capabilityN»]
default: «TOP» «USER» «UIDL»
context: mail, server
Директива позволяет указать список расширений протокола POP3, выдаваемый клиенту по команде CAPA. К этому списку автоматически добавляются методы авторизации, указанные в директиве auth auth (SASL capability) и STLS если включена директива starttls
В данной директиве имеет смысл указать расширения поддерживаемые imap-бэкендами на которые проксируются клиенты (если эти расширения относятся к командам используемым после авторизации, когда nginx прозрачно проксирует подключение клиента на бэкенд).
Текущий список стандартизованных расширений опубликован на www.iana.org.
syntax: protocol imap|pop3|smtp
default: mail
context: server
syntax: server { … }
default: нет
context: imap
Директива задаёт конфигурацию для виртуального сервера.
syntax: server_name fqdn_server_host
default: имя хоста, полученное через gethostname()
context: mail, server
Задает имя сервера, используемое:
syntax: smtp_auth [login] [plain] [cram-md5]
default: login plain
context: mail, server
Директива задаёт разрешенные методы SASL аутентификации smtp клиентов:
syntax: smtp_capabilities «capability1» [«capability2» .. «capabilityN»]
default: нет
context: mail, server
Директива позволяет указать список расширений протокола SMTP, выдаваемый клиенту в ответе на команду EHLO. К этому списку автоматически добавляются методы авторизации, указанные в директиве smtp_auth smtp_auth.
В данной директиве имеет смысл указать расширения поддерживаемые MTA на который проксируются клиенты (если эти расширения относятся к командам используемым после авторизации, когда nginx прозрачно проксирует подключение клиента на бэкенд).
Текущий список стандартизованных расширений опубликован на www.iana.org.
syntax: so_keepalive on|off
default: off
context: mail, server
Устанавливать опцию сокета SO_KEEPALIVE при подключении к imap/pop3 бэкенду. Во FreeBSD keepalive используются по умолчанию для всех соединений и необходимости явно задавать это через setsockopt нет (см. sysctl net.inet.tcp.always_keepalive).
syntax: timeout время
default: timeout 60
context: mail, server
Задает таймаут, который используется до начала проксирования на бэкенд.