Чем открыть письмо postfix

Обновлено: 06.07.2024

Отслеживать и обрабатывать входящие письма в автоматическом режиме обычно нужно чтобы привязать их содержимое к какой-то сущности в базе данных, будь это тикет в тикетной системе вроде OTRS и Redmine, клиент или лид в CRM, или ответ сервера с ошибкой доставки письма в какой-то адрес из списка рассылки.

Наивные способы обработать письма, загрузив их по протоколу POP3 или через IMAP, рассматривать не будем: это тема другой статьи.

Какие есть варианты поймать входящие письма:

Директива mailbox_command позволяет задать команду, которая будет вызываться для доставки писем локальным пользователям. Если письма этим же локальным пользователям нужно пересылать администратору или вебмастеру (например, отчёт из скриптов в cron), то такая директива не подойдёт. Например, это так если в /etc/aliases есть строчки для конкретных пользователей.

Можно перенаправлять письма в команду через пайп в /etc/aliases или аналогично через .forward в домашке. Вариант не подойдёт по тем же причинам что выше. Можно было бы завести отдельного пользователя или пользователя с тем же ID под забор почты, но это приведёт к или сложностям с раздачей прав, или к всевозможным странностям. Лучше наверняка.

Совсем все входящие письма можно просматривать указанием check_recipient_access с правилом FILTER внутри smtpd_recipient_restrictions . Этот директивы предназначены для смены получателя писем и удаления спама, а не для получения писем в адрес скрипта. Тоже относится к другим способам фильтрации писем. Это всё не для того.

Есть более экзотические варианты обработать входящие письма с помощью Dovecot или через хук в procmail. Это не то, о чём хотелось бы вспоминать через пару лет.

Воспользуемся последним вариантом. Этот способ требует наличие полного контроля над сервером, обрабатывающим письма. Впрочем, тоже относится ко всем вариантам выше, кроме второго.

Простейшая программа на PHP для сохранения писем в каталог inbox может выглядеть так:

Скрипт сохраняет письма, поданные на стандартный вход, в файл с уникальным именем и префиксом из временной метки. Не должно быть никакой проблемы написать такую же программу на Python или Go.

Пусть полный путь до скрипта выглядит так:

Сам скрипт ожидается что будет выполняться с правами пользователя example из каталога, в котором находится скрипт.

С учётом вышесказанного, конфиг для запуска демона pipe с нашим скриптом будет выглядеть так:

Эти строки нужно добавить в master.cf , который обычно лежит в /etc/postfix .

Наш транспорт будет называться inbox — это же имя будет использоваться дальше при настройке Postfix.

Наконец, нужно объяснить Postfix куда нужно обращаться для доставки писем в наш адрес. Для этого нужна таблица transport .

Формат самого файла таблицы простой: домен или адрес, через пробел - назначение. Нужно иметь ввиду что для одного домена или адреса может быть только одно назначение. Например, если вы хотите чтобы входящая почта попадала не только в обработку в программу, но и во входящие человеку, то для внешнего адреса нужно сделать пересылку (через virtual_alias_maps ) в другой внутренний адрес, письма на который уже будет уходить в программу.

Пример содержимого файла таблицы:

После любых изменений в этом файле не забываем скомпилировать его в бинарный вид и перезагрузить Postfix.

Отправим тестовое письмо:

Проверим что файл появился:

Если нет особых требований к скорости обработки писем, а значит нет проблемы обрабатывать всю входящую почту раз в минуту отдельной программой в cron, то не стоит более усложнять программу. Это важно потому что ошибки из cron вы получите на почту, а ошибки из программы-обработчика писем пойдут в только почтовый лог в урезанном виде. Также стоит отметить что сама программа обработки письма не может выполняться больше чем указано в директиве command_time_limit , обычно это 1000 секунд.

Если нужно чтобы письма обрабатывались в реальном времени, то может иметь смысл отказаться от использования режима soft_bounce и перейти на явную передачу кодов ошибок. Для этого во всех ситуация вывод вашей программы должен начинаться с кода ошибки вида 4.X.X или 5.X.X.

Если хочется таким образом архивировать вообще всю почту, проходящую через Postfix, то для этого есть директива always_bcc .

Настройки Postfix хоть и очень логичны, но не всегда бывает очевидно какая ошибка из-за конфликта каких директив возникает.

Recipient address rejected: User unknown in local recipient table

Такая ошибка может возникнуть в том числе если домен, в котором находится адрес, с которого письма должны поступать в обработку, указан в директиве mydestination . Тогда Postfix будет пытаться доставить письмо локально, и, не найдя получателя, не проверяет ничего дальше.

image

Добрый день, сообщество. В этой статье хочу поговорить о Postfix – о том, каковы принципы его работы, и о возможностях диагностики проблем. В силу специфики работы приходится с ним сталкиваться — либо для решения своих задач, либо для понимания того, как работает чужая инфраструктура. В интернете о Postfix много информации, однако в основной массе это готовые конфиги для развертывания почтового сервера с нуля. Здесь же я постараюсь охватить основные аспекты администрирования Postfix.

Известно, что Postfix разработан как альтернатива Sendmail. ПО повышало производительность, обеспечивало устойчивость, гибкость и безопасность решения. Все основные Linux-дистрибутивы включают Postfix, в Mac OS X, начиная с версии 10.3, программа также используется вместо Sendmail.

Главные особенности

  • Фокус Postfix в том, что можно начинать работу без приготовлений (базовые конфигурационные файлы включают в себя пару строк).
  • Для эффективной фильтрации писем применяются регулярные выражения PCRE (Perl compatible regular expression).
  • Программа Postfix совместима с Sendmail: файлы aliases и .forward имеют схожий формат и семантику.
  • Postfix общается по протоколу ESMTP, поддерживает виртуальные домены и фильтрацию спама.
  • Не используется язык подстановки адресов как в Sendmail. Вместо этого производится поиск в плоских файлах таблиц или базе данных MySQL.

Архитектура

Запуск и контроль всех процессов выполняет программа master. В ее конфиге — master.cf -перечислены вспомогательные программы и информация о том, как и когда их нужно запустить.

Самые важные программы показаны в блок-схеме:

image

Электронные письма, ожидающие доставки, находятся под управлением qmgr – администратора очередей:

Incoming – входящая почта;

Active – доставляемая почта;

Deferred – письма, доставка которых не осуществилась ранее;

Hold – письма, заблокированные в очереди администратором;

Corrupt – письма, которые невозможно прочитать.

Также он поддерживает и более сложный алгоритм — например, отбирает события только с определенных адресов.

Программа virtual доставляет письма в виртуальные почтовые ящики – ящики, представляющие собой адреса назначения. Наконец, программа pipe реализует доставку через внешние программы.

Взаимодействие между пользователем и системой обработки регулируется утилитами:

sendmail, mailq, newaliases — интерфейс совместимости postfix и sendmail.

postfix – запускает и прекращает работу системы обработки почты;

postalias — создает и модифицирует таблицы псевдонимов;

postmap – создает, модифицирует, запрашивает таблицы преобразований;

cat /etc/postfix/transport

Утилиты фактически создают индексированные карты файлов. Повторить запуск при изменениях в файлах aliases и transport;

Postcat –напечатает содержимое файла из очереди;

Postsuper и postqueue – управляют почтовыми очередями. Первая используется для высокопривилегированных операций. Например, удаление очереди:

Postconf – инструментальное средство, позволяющее конфигурировать postfix- конфиг main.cf. Без аргументов выводит все параметры в текущей конфигурации. Если передать значение параметра – выведет значение этого параметра. С ключом –d напечатает default-настройки, а не сконфигурированные.

С ключом –n напечатает только значения, отличные от типовых.

Главным файлом Postfix является main.cf. Он конфигурирует серверные программы и определяет таблицы преобразований, на которые содержит ссылки. Содержит более 300 параметров. Для запуска почтового сервера в средней организации достаточно лишь несколько из них. В документацию рекомендуется включать лишь параметры, содержащие нестандартные значения.

Базовая возможная настройка

Преобразования и виртуальные домены

Аспекты поведения Postfix определяются использованием таблиц поиска, отражающих ключи как значения тип: путь или просто как списки. Например, таблица alias_maps:dbm:/etc/mail/aliases.

Обратите внимание, синтаксис ключ: значение обеспечивает совместимость с Sendmail.

Помимо традиционного файла базы данных бинарного формата dbm, источником данных для таблицы преобразований может быть ldap, regexp выражения, postgres, Mysql и многое другое.

Если вам нужно обслуживать почтовый домен, то можно сделать это тремя путями:

— Указать домен в mydestination – доставка пойдет по схеме, описанной выше;

— Указать домен в параметре virtual_alias_domains. Домен получит собственное адресное пространство. Потребуется обеспечить возможность преобразования адресов в реальные (карта virtual_alias_maps);

— Указать домен в virtual_mailbox _domains. Здесь также будет собственное именное пространство. Но управление списком пользователей будет независимым от системных учеток. Потребуется указать параметр virtual_mailbox _maps c таблицей действительных пользователей в домене.

Защита и доступ

Postfix защищает себя на нескольких уровнях. Большинство серверных Postfix-программ могут выполняться в среде с измененным корневым каталогом (chroot). Они являются отдельными программами без связи Родитель-дочерний. Ни одна из них не имеет бита setuid. Каталог, в который направлена почта, открыт для записи группе postdrop, для нее — программа postdrop setgid.

Что касается доступа, почтовые домены ретранслируют почту на сторонние адреса только для надежных агентов. Открытая ретрансляция с неизвестных адресов, как известно, не сулит ничего хорошего. Postfix по умолчанию закрыт как ретранслятор. Стандартные настройки сильно ограничены, возможно вам придется ослаблять ограничения. Доступы конфигурируются списками ограничения доступа access restriction list. Важнейшим параметром будет smtpd_recipient_restrictions, так как адресом получателя куда проще управлять. По крайней мере, можно установить локальный ли он.

Вот список ограничений для проверки ретрансляции:

Check_client_address – проверяет адрес ПК клиента;

Check_recipient_access – проверяет почтовый адрес получателя;

Permit_mynetworks – предоставляет доступ к адресам в параметре mynetworks;

Reject_anauth_destination – отклоняет почту для нелокальных получателей – ретрансляция отсутствует.

Одна из мер защиты – строгая реализация протокола ESMTP. Легитимные почтовые сервера протокол принимают, а рассылки спама могут не принять и дискредитировать себя. Однако сейчас технология уже не столь надежна. Есть злоумышленники, способные обработать легитимную почту.

Черные списки основаны на информации из DNS – разрешаются директивой reject_rhsbl_sender – после указывается DNS-сервер, также reject_rbl_client , только проверяет имя PC, а не доменное имя.

До сих пор в версиях Posfix удавались лишь DDOS атаки.

Отладка

Другим местом поиска является сама очередь. Утилита postqueue –p (или аналогичный вывод mailq) печатает содержимое очереди.

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------

90190C3B9B9F 2242 Mon Jul 27 19:50:05 MAILER-DAEMON

(connect to 10.70.85.12[10.70.85.12]:25: No route to host)

95E96C3CFB5A 2307 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

956FAC3CFB46 2311 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

96987C3CFB40 2311 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

97944C3CFB5E 2311 Mon Jul 27 19:50:05 MAILER-DAEMON

(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)

postcat –qv 96987C3CFB40 Найдет письмо по ID, покажет заголовок и дополнительную информацию:
[root@iwtm611

postcat: name_mask: all

postcat: inet_addr_local: configured 2 IPv4 addresses

postcat: inet_addr_local: configured 2 IPv6 addresses

*** ENVELOPE RECORDS deferred/9/96987C3CFB40 ***

message_size: 2311 201 1 0 2311

message_arrival_time: Mon Jul 27 19:50:05 2020

create_time: Mon Jul 27 19:50:05 2020

regular_text: Received: from Vvpc (unknown [10.254.1.250])

regular_text: by iwtm611.local (Postfix) with ESMTP id BCB42C3CFB62

regular_text: MIME-Version: 1.0

regular_text: Date: 2 Jul 2020 12:48:40 +0300

regular_text: Subject: test

regular_text: Content-Type: text/plain; charset=utf-8

regular_text: Content-Transfer-Encoding: base64

regular_text: Message-Id: <20200702094845.BCB42C3CFB62@iwtm611.local>

*** HEADER EXTRACTED deferred/9/96987C3CFB40 ***

*** MESSAGE FILE END deferred/9/96987C3CFB40 ***

Postfix можно легко установить и запустить. Но быстро разобраться и решить проблему его внедрения в незнакомой структуре, удастся лишь при понимании тонкостей его работы. Надеюсь, кому-то эта статья поможет сэкономить время и силы на выявление причин проблем. И понять, почему почтовая система работает таким образом, а не иначе.

Установка и настройка Postfix и Dovecot на Ubuntu

Postfix – это программный продукт, позволяющий организовать почтовый сервер. Он был создан как альтернатива Sendmail – старейшему агенту передачи почты (MTA – Mail Transfer Agent). Postfix распространяется с открытым исходным кодом и используется разработчиками для маршрутизации и пересылки почтовых писем внутри системы Linux.

В ходе сегодняшней статьи мы подробно рассмотрим, как выполняется установка и настройка Postfix на сервере Ubuntu 20.04, а также поговорим о том, что представляет собой Dovecot и как правильно его установить в связке с Postfix.

Требования

Прежде чем переходить к установке программного средства, рекомендуем ознакомиться c необходимыми требованиями. Для реализации рассматриваемой задачи нам потребуется:

  • Сервер на Ubuntu 20.04, который будет функционировать в режиме почтовой службы. Требуется, чтобы он включал в себя пользователя без прав root с привилегиями sudo. Вместе с этим также необходим брандмауэр, настроенный с помощью Uncomplicated Firewall (UFW).
  • Доменное имя сервера. Если вам потребуется получить доступ к почте из внешнего источника, то нужно также позаботиться об MX-записи, которая будет указывать на почтовый сервер.

Как установить Postfix

По умолчания Postfix включен в репозиторий операционной системы Ubuntu, поэтому с установкой не должно возникнуть никаких проблем. Провести ее мы можем с использованием команды apt.

Первым делом обновляем кэш пакетов:

Затем устанавливаем непосредственно сам пакет Postfix. Здесь важно обратить внимание на значение DEBIAN_PRIORITY=low – оно позволяет нам подключить некоторые дополнительные опции.

Все вышеуказанные настройки мы в любой момент времени можем подкорректировать. Чтобы открыть окно редактирования, достаточно ввести:

На этом установка Postfix на Ubuntu завершена, теперь можем переходить к более детальным настройкам.

Настройка Postfix

Большинство настроек конфигурации Postfix заданы в файле main.cf, который можно найти по адресу /etc/postfix/main.cf. Здесь мы можем пойти следующим образом: изменять параметры непосредственно в самом файле либо воспользоваться командой postconf.

Указываем значение Maildir для переменной home_mailbox. Настроить ее можно с помощью команды:

Прописываем расположение таблицы virtual_alias_maps, где все учетные записи почты сопоставляются с аккаунтами системы Linux. Также активируем еще одну команду, с помощью которой мы сопоставим расположение таблицы с файлом базы данных хэша в /etc/postfix/virtual:

Теперь мы можем начать сопоставление учетных записей почты с профилями пользователей в ОС Linux. Для этого создадим файл в nano, вы же можете выбрать любой другой текстовый редактор:

После успешного ввода данных сохраняемся и выходим из файла. В нашем случае это редактор nano, поэтому зажимаем на клавиатуре комбинацию клавиш «CTRL+X, Y» и жмем «Enter». После этого осуществляем сопоставление строчкой кода:

Затем перезагружаемся командой:

Если брандмауэр был настроен с помощью UFW, вам потребуется добавить одно исключение. Это связано с тем, что UFW по умолчанию блокирует все внешние подключения к службам сервера. Решить проблему можно одной строчкой кода:

Готово! Настройка Postfix на Ubuntu 20.04 прошла успешно. Теперь было бы хорошо его протестировать на почтовом клиенте, но сделать этого мы пока не можем. Прежде чем установить почтовый клиент, для начала нам нужно внести некоторые корректировки в параметры сервера Ubuntu.

Установка почтового клиента

В данном разделе мы установим пакет s-nail для взаимодействия с доставляемой почтой. Перед тем как начать установку, рекомендуем проверить настройку переменной среды «MAIL». Клиенту эта переменная необходима для того, чтобы определять места почты для пользователя.

Если необходимо гарантированно задать переменную MAIL, вне зависимости от способа доступа к учетной записи, потребуется указать ее в файле /etc/bash.bashrc и добавить в /etc/profile.d, чтобы она использовалась всеми юзерами.

Для этого введем следующее:

Чтобы прочитать переменную текущего сеанса, можно ввести:

Теперь мы можем переходить к установке клиента s-nail. Прописываем для этого:

Пока что не запускаем его, добавим в него несколько записей. Сначала откроем файл в редакторе nano:

В конец вставим следующее:

Расшифруем каждую строчку:

  • set emptystart – дает возможность клиенту открываться даже при пустом почтовом ящике;
  • set folder=Maildir – прописывает для директории Maildir переменную folder;
  • set record=+sent – создает файл sent в формате mbox для хранения отправленной почты в каталоге, заданном в переменной folder.

Для отправки письма добавим строку в команду s-nail. Обратите внимание, что в конце указывается имя пользователя – вам потребуется изменить его на свое.

Убедимся, что каталог был создан:

В результате должно отобразиться примерно следующее:

Теперь мы можем перейти к тестированию почтового клиента.

Тестирование отправки почты

Для начала запустим клиент, для этого используем команду:

Также вам потребуется заменить последний адрес, указанный в строчке кода:

Установка и настройка Dovecot

Dovecot – это свободный IMAP- и POP3-сервер, разработанный с упором на безопасность. Нам он потребуется для того, чтобы подключить авторизацию по протоколу SMTP.

Устанавливаем Dovecot с компонентом для работы с СУБД:

Пропишем в него следующее:

Далее настраиваем слушателя для аутентификации:

В файле прописываем:

На этом примере мы настраиваем сервис для аутентификации и создаем два прослушивателя: /var/spool/postfix/private/auth – для возможности Постфиксом использовать авторизацию через Dovecot, auth-userdb – сокет для авторизации через dovecot-lda.

В этот же файл добавляем:

Переходим к настройке аутентификации в Dovecot, открываем файл 10-auth.conf:

Задаем в нем следующие значения:

Открываем файл 10-ssl.conf командой vi /etc/dovecot/conf.d/10-ssl.conf и настраиваем в нем использование шифрования:

  • ssl = required – прикажет Dovecot требовать от клиентов использование шифрования;
  • ssl_cert – путь до открытого сертификата;
  • ssl_key – путь к закрытому ключу.

Добавляем автоматическое создания каталогов в файле vi /etc/dovecot/conf.d/15-lda.conf:

Настраиваем подключение к базе данных. Для начала открываем нужный файл:

Вставляем в него:

В этом фрагменте мы указали на файл, в котором будут находиться настройки для получения пользователей и паролей из БД.

Переходим к корректированию файла с настройками работы mySQL:

В конце файла добавляем:

Таким образом, мы смогли настроить запрос на получение данных из БД. Осталось сконфигурировать интерфейс, на котором мы будем слушать Dovecot:

В этот файл прописываем:

По умолчанию Dovecot слушает и на ipv6 (listen = *, ::). Если на сервере не используется 6-я версия протокола TCP/IP, то в логах могут быть ошибки.

Разрешаем запуск Dovecot:

Изменение конфигурации Postfix для Dovecot

Так как для отправки писем мы используем протокол SMTP через Dovecot, нам потребуется внести некоторые изменения в основном файле. Откроем его:

Изменяем в нем следующее:

Также комментируем строки:

Вместо них прописываем:

Откроем файл sudo nano /etc/postfix/master.cf и раскомментируем в нем строчку:

Осталось перезагрузиться в Postfix:

Теперь вы можете протестировать отправку почты. Обратите внимание, что у Dovecot также есть лог – чтобы его включить, необходимо открыть файл sudo nano /etc/dovecot/conf.d/10-logging.conf и внести в него корректировки:

Первая строка указывает на путь к логу, а вторая показывает неудачные попытки авторизации.

Заключение

Теперь вы знаете, как выполняется установка и настройка Postfix и Dovecot на Ubuntu 20.04. Начинающим системным администраторам на первый взгляд это может показаться непосильной задачей, но с данными инструкциями все должно получиться. Удачи!

RFC2554 - SMTP Service Extension for Authentication

RFC4422 - Simple Authentication and Security Layer (SASL)

mailq - получение идентификаторов (ID) писем в почтовой очереди. Посмотреть сколько и какие письма в очереди.

postcat -q - прочитать письмо в почтовой очереди (задав его идентификатор, полученный из mailq)

postconf myhostname - проверить значение параметра myhostname. С ключом e можно редактировать main.cf, например

Поиск ошибок в log с помощью регулярного выражения:

Команда на немедленную доставку конкретного письма по ID. ID получаем командой mailq:

Удаление группы писем от определенного FROM (на примере MAILER-DAEMON):

Для серверов с несколькими IP. Иногда бывает нужно, чтобы Postfix отправлят почту от конкретного IP. Редактируем

Директивы файла main.cf:

inet_interfaces. Postfix IP address bind configuration:

mydestination. Сервер Postfix идентифицирует себя как место конечного назначения только для доменов, имена которых определены в параметре mydestination. Postfix также идентифицирует себя как место конечного назначения для адресов в форме user@[IP адрес], где указан один из IP адресов Postfix. В самом простом случае там должны быть указаны все возможные имена вашего сервера, чтобы локальная почта от ваших системных демонов приходила к вам, а не отбрасывалась

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

virtual_mailbox_domains указывает Postfix, что он является местом конечного назначения для одного или нескольких доменов виртуальных почтовых ящиков.

virtual_mailbox_maps список почтовых ящиков. По умолчанию почтовые ящики имеют формат mbox, чтобы задать формат Maildir нужно добавить черту "/" в конец имени почтового ящика.

smtpd_discard_ehlo_keywords: Postfix DSN DSN - Delivery Status Notifications, которая предоставляет отправителю почты уведомления о статусе его писем. Статусы могут быть - success, failure, delay, none.

sender_canonical_maps Изменение Return-Path (адрес отправителя). В main.cf добавляем строку sender_canonical_maps = hash:/etc/postfix/sender_canonical

Restrictions Postfix

smtpd_relay_restrictions - это ограничение появилось в Postfix 2.10 По умолчанию имеет значение

disable_vrfy_command = yes - установленная в yes запрещает SMTP- команду VRFY, позволяет клиентам проверять существование получателя.

Возможность использования БД SQLite для хранения внутренних баз, таких как БД виртуальных пользователей, алиасы или списки доступа (в дополнение к таким типам хранилищ как btree, dbm и hash).

Поддержка опции "smtpd_reject_footer", позволяющей указать блок текста, который будет добавлен к отвергнутым сервером запросам (SMTP-ответ "reject").

Поддержка системы кэширования в памяти Memcached для хранения кэшей систем verify и postscreen, получающих доступ к данным через сервер proxymap. При использовании Memcached возможно создание конфигураций, при которых несколько серверов совместно используют единый кэш при проверке валидности email-адресов или выборке из списков блокировки зомби-машин, рассылающих спам. Memcached также можно использовать для хранения баз для проверки по серым спискам. Настройка осуществляется через директиву memcache_table;

Переработана команда postconf: добавлен вывод предупреждений о неиспользуемых параметрах "name=value" в конфигурационных файлах main.cf и master.cf, что позволяет выявить опечатки в именах параметров; реализована поддержка динамических имён параметров, таких как имена, зависящие от элементов master.cf; в более дружественном для восприятия формате оформлен вывод настроек из main.cf и master.cf (postconf -nf, postconf -Mf); в "postconf -M" добавлена поддержка фильтрации вывода, например, "postconf -M inet";

В дополнение к ранее присутствующим настройкам smtpd__restrictions добавлена директива smtpd_relay_restrictions, которая позволяет снизить вероятность появления открытого релея из-за ошибок при определении правил блокирования спама. По умолчанию задействованы настройки для полного сохранения обратной совместимости (smtpd_relay_restrictions = permit_mynetworks, reject_unauth_destination; для новых установок smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination);

Добавлена поддержка проверочных таблиц (lookup table) "socketmap" в стиле Sendmail.

В директиве recipient_delimiter теперь возможно указание нескольких символов-разделителей, например, можно одновременно использовать как разделители "+" и "-".

Добавлена опция postscreen_dnsbl_whitelist_threshold, позволяющая клиентам пропустить тесты postscreen (выполняет роль легковесного межсетевого экрана, предназначенного для первичного блокирования соединений от рассылающих спам зомби-машин) в зависимости от результатов проверки по белому списку через DNSBL. Применение postscreen_dnsbl_whitelist_threshold позволяет избавиться от заметных задержек в доставке почты от заведомо валидных почтовых систем, в которых повторные запросы не отправляются с одного и того же IP (задержка возникает из-за теста с использованием повторного реконнекта), например, так поступает Google.

Читайте также: