Суть проблемы в том, что, если у отправителя не статический, а динамический ip-адрес он считается плохим и принять почту от такого почтовика не получится. Срабатывает фильтр и отклоняет письмо такого почтовика.

Для примера Facebook использует динамические ip-адреса для рассылки писем. В моём случае ошибка выглядела так:

Nov 23 11:19:08 mail postfix/smtpd[26902]: NOQUEUE: reject: RCPT from 66-220-155-154.mail-mail.facebook.com[66.220.155.154]: 554 5.7.1 <66-220-155-154.mail-mail.facebook.com>: Helo command rejected: ACCESS DENIED. Your email was rejected because the sending mail server appears to be on a dynamic IP address that should not be doing direct mail delivery (66-220-155-154); from=<notification@facebookmail.com> to=<> proto=ESMTP helo=<66-220-155-154.mail-mail.facebook.com>

Решение

Нужно добавить pattern с ip адресом и именем домена (66-220-155-154.mail-mail.facebook.com) в файл /etc/postfix/helo_access.pcre. Благодаря этой строке фильтр будет пропускать почту с facebook.com даже если у почтового сервера динамический ip адрес.

sudo vim /etc/postfix/helo_access.pcre
#просто чтобы понять после чего добавлять
/^\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]$/ DUNNO
/^(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}).*.facebook.com$/ DUNNO
sudo systemctl restart postfix dovecot

Наш паттерн ^(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}).*.facebook.com$ как раз и говорит что если в hello будет 66-220-155-154.mail-mail.facebook.com то нужно пропустить письмо.

Чтобы проверить рабочий ли паттерн можно воспользоваться онлайн сервисом.