Postfix check_recipient_access with MySQL
Dec 182016Для предотвращения повторной отправки писем "несуществующим" пользователям добавляем в правило postfix:
smtpd_recipient_restrictions = mysql:/etc/postfix/mysql/mysql-virtual-recipient-access.cf,
permit_mynetworks,
permit_sasl_authenticated,
Содержимое /etc/postfix/mysql/mysql-virtual-recipient-access.cf:
user = <username>
password = <password>
hosts = <host>
dbname = <dbname>
query = select ifnull( (select (case `notificationType` when 'bounced' then 'REJECT' END) as access FROM `EmailStatuses` WHERE `recipients` = '%s' limit 1),'OK') as access
Запрос к базе формируется по вкусу, у меня статусы отправки пишутся в базу отдельным скриптом
Не забыть перезапустить postfix
Сделано на основе - https://kitt.hodsden.org/blog/2014/06/postfix_check_recipient_access_mysql