Postfix: Illegal address syntax

Редко, но бывает вижу в логах постфикса такие ошибки:

Nov  6 17:22:44 mx postfix/smtpd[22836]: warning: Illegal address syntax from unknown[192.168.XX.XX] in RCPT command: <'[email protected]'>
Nov  6 17:22:45 mx postfix/smtpd[22836]: warning: Illegal address syntax from unknown[192.168.XX.XX] in RCPT command: <'[email protected]'>
Nov  6 17:22:46 mx postfix/smtpd[22836]: warning: Illegal address syntax from unknown[192.168.XX.XX] in RCPT command: <'[email protected]'>
Nov  6 17:22:48 mx postfix/smtpd[22836]: too many errors after RCPT from unknown[192.168.XX.XX]

Проблема в одинарных кавычках ’email’ которых не должно быть и которые появляются, как правило, у пользователей Outlook. Лечится вот таким вот фильтром в постификсе:

В main.cf добавляем

smtpd_command_filter = pcre:/etc/postfix/command_filter.regex

в /etc/postfix/command_filter.regex

/^RCPT\s+TO:\s*<'([^[:space:]]+)'>(.*)/		RCPT TO:<$1>$2

Спасибо extremeshok.com

настройка openDKIM в centos 7

Установим opendkim

yum install opendkim

Нужно в /etc/opendkim.conf поправить Mode и раскомментировать строки

Mode    sv
KeyTable        /etc/opendkim/KeyTable
SigningTable    refile:/etc/opendkim/SigningTable

Создадим ключи

mkdir /etc/opendkim/keys/example.com
chmod 750 /etc/opendkim/keys/example.com
opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com
chmod 640 /etc/opendkim/keys/example.com/*
chown -R opendkim:opendkim /etc/opendkim/keys/*

Допишем в /etc/opendkim/KeyTable

default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private

и в /etc/opendkim/SigningTable

*@example.com default._domainkey.example.com

Для подписи субдоменов нужно добавить в /etc/opendkim.conf параметр

SubDomains      yes

а в /etc/opendkim/SigningTable

*@sub.example.com default._domainkey.example.com

Перезапустим opendkim

systemctl restart opendkim.service

Осталось научить postfix работать с dkim и указать для домена TXT запись.

Добавляем в /etc/postfix/main.cf

#DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

затем

postfix restart

Добавляем TXT запись.
Берем содержимое файла /etc/opendkim/keys/example.com/default.txt

default._domainkey      IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=.................." )  ; ----- DKIM key default for example.com

Для субдомена запись будет вида

default._domainkey.sub.example.com      IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=.................." )  ; ----- DKIM key default for example.com

Проверяем

dig txt default._domainkey.example.com

Отправляем тестовое письмо и наслаждаемся результатом.
opendkim