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

Постфикс NOQUEUE: reject: RCPT from unknown

Я создал веб-приложение, но когда оно пытается отправить электронное письмо, оно терпит неудачу. Postfix записывает в свой mail.log следующее:

    postfix/smtpd[22261]: warning: hostname srv.eastinc.nl does not resolve to address 192.168.3.101
    postfix/smtpd[22261]: connect from unknown[192.168.3.101]
    postfix/smtpd[22261]: NOQUEUE: reject: RCPT from unknown[192.168.3.101]: 554 5.7.1 <someaddress@gmail.com>: Relay access denied; from=<Domain@eastinc.nl> to=<someaddress@gmail.com> proto=ESMTP helo=<domain.eastinc.nl>
    postfix/smtpd[22261]: disconnect from unknown[192.168.3.101]

Я совершенно уверен, что srv.eastinc.nl разрешает 192.168.3.101, потому что так говорит nslookup. Конфигурация Postfix:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
delay_warning_time = 2h
home_mailbox = Maildir/
inet_interfaces = all
mailbox_size_limit = 0
mydestination = eastinc.nl, mail.eastinc.nl, srv.eastinc.nl, localhost.eastinc.nl, localhost
myhostname = mail.eastinc.nl
mynetworks = localhost 192.168.3.101 127.0.0.1 srv.eastinc.nl
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = smtp.ziggo.nl:25
smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = no
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_cert_file = /etc/ssl/certs/mailcert.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Если я правильно понимаю, и 192.168.3.101, и srv.eastinc.nl должны иметь возможность ретранслировать почту через Postfix. Есть идеи, как заставить это работать?

В вашей конфигурации есть следующие ограничения:

smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
smtpd_sender_restrictions = reject_unknown_sender_domain

allow_sasl_authenticated

Разрешите запрос, когда клиент успешно аутентифицирован по протоколу RFC 4954 (AUTH).

reject_unauth_destination

Отклоните запрос, если не выполнено одно из следующих условий:

  • Postfix является пересылкой почты: разрешенный домен RCPT TO совпадает с $ relay_domains или его поддоменом и не содержит маршрутизации, указанной отправителем (user @ elsewhere @ domain),

  • Postfix - это конечный пункт назначения: разрешенный домен RCPT TO соответствует $ mydestination, $ inet_interfaces, $ proxy_interfaces, $ virtual_alias_domains или $ virtual_mailbox_domains и не содержит маршрутизации, указанной отправителем (user @ elsewhere @ domain).

reject_unknown_sender_domain

Отклонить запрос, если Postfix не является конечным местом назначения для адреса отправителя, а домен MAIL FROM не имеет 1) DNS MX и DNS A записи, или 2) неправильной записи MX, такой как запись с именем хоста MX нулевой длины ( Postfix версии 2.3 и новее).

Ответ задается параметром unknown_address_reject_code (по умолчанию: 450), unknown_address_tempfail_action (по умолчанию: defer_if_permit) или 550 (nullmx, Postfix 3.0 и новее). Подробности см. В описании соответствующих параметров.

Итак, я предполагаю: тот, кто подключается с хоста 192.168.3.101 (это сам сервер?), Отправляет почту без аутентификации (в журнале нет ничего об аутентификации). Итак, для этого вам потребуется следующее ограничение:

allow_mynetworks

Разрешить запрос, когда IP-адрес клиента совпадает с любым сетевым или сетевым адресом, указанным в $ mynetworks.

Подготовить smtpd_recipient_restrictions с участием permit_mynetworks.

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Официальные документы: ДОСТУП README

UDP

Иногда очень плохо permit_mynetworks так как любой хост из $mynetworks может отправлять письма без аутентификации.

Так что лучше отправлять письма через smtp с auth из вашего приложения и не использовать sendmail()/mail() функции