Содержание

Директивы модуля ngx_mail_core_module

По умолчанию модули 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;
      }
  }

Директивы

imap_capabilities

syntax: imap_capabilities «capability1» [«capability2» .. «capabilityN»]
default: «IMAP4» «IMAP4rev1» «UIDPLUS»
context: mail, server

Директива позволяет указать список расширений протокола IMAP, выдаваемый клиенту по команде CAPABILITY. К этому списку автоматически добавляется STARTTLS если включена директива starttls

В данной директиве имеет смысл указать расширения поддерживаемые pop3-бэкендами на которые проксируются клиенты (если эти расширения относятся к командам используемым после авторизации, когда nginx прозрачно проксирует подключение клиента на бэкенд).

Текущий список стандартизованных расширений опубликован на www.iana.org.

imap_client_buffer

syntax: imap_client_buffer размер
default: 4k/8k
context: mail, server

Задаёт размер буфера, используемого для чтения imap комманд. По умолчанию размер буфера равен размеру страницы, в зависимости от платформы это или 4K, или 8K.

listen

syntax: listen адрес:порт [bind]
default: нет
context: server

Директива задаёт адрес и порт, на которых сервер принимает запросы. Можно указать только порт, кроме того, адрес может быть именем сервера, например:

  listen  127.0.0.1:110;
  listen  *:110;
  listen  110;   # то же самое что *:110
  listen  localhost:110;

Разные виртуальные сервера должны слушать разные пары ip и port.

pop3_auth

syntax: pop3_auth [plain] [apop] [cram-md5]
default: plain
context: mail, server

Директива задаёт разрешенные методы аутентификации pop3 клиентов:

pop3_capabilities

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.

protocol

syntax: protocol imap|pop3|smtp
default: mail
context: server

server

syntax: server { … }
default: нет
context: imap

Директива задаёт конфигурацию для виртуального сервера.

server_name

syntax: server_name fqdn_server_host
default: имя хоста, полученное через gethostname()
context: mail, server

Задает имя сервера, используемое:

smtp_auth

syntax: smtp_auth [login] [plain] [cram-md5]
default: login plain
context: mail, server

Директива задаёт разрешенные методы SASL аутентификации smtp клиентов:

smtp_capabilities

syntax: smtp_capabilities «capability1» [«capability2» .. «capabilityN»]
default: нет
context: mail, server

Директива позволяет указать список расширений протокола SMTP, выдаваемый клиенту в ответе на команду EHLO. К этому списку автоматически добавляются методы авторизации, указанные в директиве smtp_auth smtp_auth.

В данной директиве имеет смысл указать расширения поддерживаемые MTA на который проксируются клиенты (если эти расширения относятся к командам используемым после авторизации, когда nginx прозрачно проксирует подключение клиента на бэкенд).

Текущий список стандартизованных расширений опубликован на www.iana.org.

so_keepalive

syntax: so_keepalive on|off
default: off
context: mail, server

Устанавливать опцию сокета SO_KEEPALIVE при подключении к imap/pop3 бэкенду. Во FreeBSD keepalive используются по умолчанию для всех соединений и необходимости явно задавать это через setsockopt нет (см. sysctl net.inet.tcp.always_keepalive).

timeout

syntax: timeout время
default: timeout 60
context: mail, server

Задает таймаут, который используется до начала проксирования на бэкенд.