我正在尝试通过 Postfix 从 mydomain.com 发送电子邮件到我知道存在的地址([电子邮件保护])。但是 Postfix 报告该地址不存在。
摘自 mail.log
Jun 7 07:01:47 mydomain postfix/smtp[50352]: 010BB40606: to=<[email protected]>, 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: <[email protected]>
250 OK
RCPT TO: <[email protected]>
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
该邮件已被退回多次。
非常感谢您的帮助。
答案1
您的日志的相关部分是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 上下文中)不是地址。
当您与提供更详细输出的“正常”邮件服务器通信时,对未知收件人地址的响应通常为“用户未知”或“收件人地址被拒绝”。简洁的“地址未知”暗示着发生了一些事情。在这种情况下,有两件事要做:
HELO
尝试使用相同的或您的邮件系统使用的telnet 调试会话并使用与失败的邮件EHLO
相同的方法。MAIL FROM
RCPT TO
- 联系接收服务器的所有者,告知您在向其系统发送合法邮件时遇到问题。大多数负责人实际上会尝试帮助您解决此问题。接收端的日志通常比发送端的日志更具信息性。请确保在请求中包含准确的日期和时间以及发件人和收件人地址,因为这确实有助于找到相应的日志条目。