Назад | Перейти на главную страницу

`Адрес отправителя отклонен: не принадлежит пользователю` в Postfix

Я получаю следующую ошибку, когда пытаюсь отправить электронное письмо от клиента на моем домашнем компьютере через мой аутентифицированный SMTP-сервер на receiver@gmail.com.

Oct 17 09:21:40 debian postfix/smtpd[1643]: NOQUEUE: reject: RCPT from
unknown[x.x.x.x]: 553 5.7.1 <sender@example.com>: Sender address rejected:
not owned by user sender@example.com; from=<sender@example.com>
to=<receiver@gmail.com> proto=ESMTP helo=<[192.168.1.5]>

В конечном итоге я ищу исправление ошибки, но сейчас мне интересно, какие параметры конфигурации в main.cf могут это исправить. Например, стоит ли возиться с smtpd_sender_restrictions, smtpd_relay_restrictions, или smtpd_recipient_restrictions? Я не могу удалить ошибку, сделав любой из предыдущих параметров максимально допустимым.

Редактировать: Вот соответствующая часть моей текущей конфигурации, хотя я в основном ищу пару возможных параметров Postfix, которые могут привести к отклонению адреса.

relay_domains = *

smtpd_sender_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated

smtpd_relay_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination

smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    reject_rbl_client zen.spamhaus.org,
    reject_rhsbl_reverse_client dbl.spamhaus.org,
    reject_rhsbl_helo dbl.spamhaus.org,
    reject_rhsbl_sender dbl.spamhaus.org,

smtpd_data_restrictions = reject_unauth_pipelining

И в master.cf:

submission inet n       -       -       -       -       smtpd
    -o smtpd_tls_security_level=encrypt
    -o smtpd_sasl_security_options=noanonymous
    -o smtpd_client_restrictions=permit_sasl_authenticated
    -o smtpd_sender_restrictions=reject_sender_login_mismatch

Согласно инструкции smtpd_sender_login_maps нужно установить. Установка того же значения, что и virtual_mailbox_maps работал у меня. Например.:

virtual_mailbox_maps    = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Кроме того, если ваши карты хранятся в базе данных, имейте в виду, что вам нужно фактически выбрать поле, а не просто «1», как предлагают некоторые инструкции.

# good
query = SELECT email FROM postfix_mailbox_maps where email = '%s';

# bad
query = SELECT 1 FROM postfix_mailbox_maps where email = '%s';

Попробуйте это, как настроен мой сервер (если ваш домен не «виртуальный», найдите соответствующие параметры):

Оставьте существующие варианты такими, какими они были по вашему первоначальному вопросу, я не думаю, что они являются проблемой.

Добавьте это в main.cf:

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_domains = hash:/etc/postfix/virtual-mailbox-domains
virtual_mailbox_maps = hash:/etc/postfix/virtual-mailbox-users

/ etc / postfix / virtual (возможно, не имеет отношения к вам):

sender@exemple.com    sender@exemple.com
other@exemple.com     other@exemple.com
alias@exemple.com     sender@exemple.com

/ etc / postfix / виртуальный почтовый ящик-домены

exemple.com    OK

/ etc / postfix / virtual-mailbox-users (это важная часть)

sender@exemple.com    sender@exemple.com
other@exemple.com     other@exemple.com

Недавно у меня была такая же проблема с одним пользователем на сервере, который не мог отправлять электронную почту, но все другие пользователи могли. Я обнаружил, что этот пользователь не был добавлен в таблицу псевдонимов в постфиксной БД, так что имейте это в виду и проверьте все таблицы в постфиксной БД. Это решило для меня проблему.

Добавьте это: smtpd_sender_restrictions = allow_sasl_authenticated в main.cf

Измените на smtpd_sender_restrictions = permission_sasl_authenticated, удалите #permit_mynetworks ,.