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

Postfix сообщает «550 Address unknown», но проверка через telnet находит адрес

Я пытаюсь отправить электронное письмо через Postfix с mydomain.com на известный мне адрес (info@example.org). Postfix сообщает, что адрес не существует.

Выдержка из mail.log

Jun  7 07:01:47 mydomain postfix/smtp[50352]: 010BB40606: to=<info@example.org>, relay=remote.example.org[redacted]:25, delay=1.2, delays=0.37/0/0.37/0.48, dsn=5.0.0, status=bounced (host remote.example.org[redacted] said: 550 Address unknown (in reply to RCPT TO command))
.

Вот сеанс telnet (с сервера, на котором работает Postfix), показывающий, что адрес существует:

# telnet remote.example.org 25
Trying [redacted]...
Connected to remote.example.org.
Escape character is '^]'.
220 sophos.example.local ESMTP ready.
HELO mydomain.com
250 sophos.example.local Hello mydomain.com [redacted]
MAIL FROM: <myaddress@mydomain.com>
250 OK
RCPT TO: <info@example.org>
250 Accepted

Вот результат "postconf -n":

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
bounce_queue_lifetime = 2h
inet_interfaces = loopback-only
inet_protocols = ipv4
mailbox_size_limit = 0
maximal_backoff_time = 15m
maximal_queue_lifetime = 2h
milter_default_action = accept
milter_protocol = 2
minimal_backoff_time = 5m
mydestination = mydomain.com, localhost.mydomain.com
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
non_smtpd_milters = inet:localhost:12301
queue_run_delay = 5m
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_milters = inet:localhost:12301
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/letsencrypt/live/www.mydomain.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/www.mydomain.com/privkey.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Сообщение возвращалось несколько раз.

Помощь очень ценится.

Соответствующая часть вашего журнала host remote.example.org[redacted] said: 550 Address unknown (in reply to RCPT TO command). Это в основном означает, что удаленный хост решил не принимать эту почту. Говорит, что адрес неизвестен.

В наше время спам-фильтров сообщения об ошибках не всегда означают то, что написано. Кроме того, "Адрес неизвестен" довольно неопределенно, так как может означать получателя или отправителя.

Поскольку ответ получен в ответ на RCPT TO команда удаленного хоста имеет довольно ограниченные знания (т.е. он еще не видел содержимое почты, обратный путь и т. д.). Решение может быть основано на ip-адресе отправляющего сервера, HELO имя хоста, MAIL FROM адрес или RCPT TO адрес.

Если сообщение об ошибке правильное, оно должно быть связано с MAIL FROM или RCPT TO поскольку это «адреса» - два других (по крайней мере, в контексте SMTP) не являются адресами.

Когда вы разговариваете с «обычным» почтовым сервером, который выдает более подробный вывод, ответ для неизвестного адреса получателя обычно читается как «пользователь неизвестен» или «адрес получателя отклонен». Краткое выражение «адрес неизвестен» - легкий намек на то, что что-то происходит. В этом случае нужно сделать две вещи:

  1. Попробуйте сеанс отладки telnet с тем же HELO или EHLO ваша почтовая система использует и использует то же MAIL FROM и RCPT TO как почта, которая не удалась.
  2. Свяжитесь с владельцем принимающего сервера, если у вас возникли проблемы с отправкой законной почты в ее систему. Большинство ответственных лиц действительно попытаются вам в этом помочь. Журналы на принимающей стороне обычно более информативны, чем на отправляющей. Убедитесь, что вы указали точную дату и время, а также адреса отправителя и отправителя в свой запрос, поскольку это действительно помогает найти соответствующую запись в журнале.