Cyberbe Notes from Blackcat

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