中继访问被拒绝(回复 RCPT TO 命令)后缀问题

sal*_*hed 4 ubuntu email-server smtp postfix

我正在尝试配置我的服务器以获取参考此链接的电子邮件:SMTP Relaying Outgoing Mail in Postfix - using Webmin。在我的案例中,我使用了Mandrill smtp 服务器。在配置主服务器之前,我还配置了一个 vagrent 实例。但是当我尝试使用以下方法从服务器(包括 vagrant 和 main)发送电子邮件时:

sendemail -f registration@example.com -t <myemail>@gmail.com -m "Message Body" -u "Message Subject"
Run Code Online (Sandbox Code Playgroud)

消息在后缀中排队,永远不会到达目的地。

/var/log/mail.log 文件显示:

precise64 postfix/smtpd[16542]: connect from localhost[127.0.0.1]
precise64 postfix/smtpd[16542]: 116033A4253: client=localhost[127.0.0.1]
precise64 postfix/cleanup[16545]: 116033A4253: message-id=<621108.689435886-sendEmail@precise64>
precise64 postfix/qmgr[12672]: 116033A4253: from=<registration@example.com>, size=916, nrcpt=1 (queue active)
precise64 postfix/smtpd[16542]: disconnect from localhost[127.0.0.1]
precise64 postfix/smtp[16546]: Untrusted TLS connection established to smtp.mandrillapp.com[54.195.231.78]:587: TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)
precise64 postfix/smtp[16546]: 116033A4253: host smtp.mandrillapp.com[54.195.231.78] said: 454 4.7.1 <myemail@gmail.com>: Relay access denied (in reply to RCPT TO command)
precise64 postfix/smtp[16546]: Untrusted TLS connection established to smtp.mandrillapp.com[54.247.27.189]:587: TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)
precise64 postfix/smtp[16546]: 116033A4253: to=<myemail@gmail.com>, relay=smtp.mandrillapp.com[54.247.27.189]:587, delay=4.3, delays=0.06/0.01/4/0.28, dsn=4.7.1, status=deferred (host smtp.mandrillapp.com[54.247.27.189] said: 454 4.7.1 <myemail@gmail.com>: Relay access denied (in reply to RCPT TO command))
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/main.cf文件:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = precise64
# myhostname = example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = precise64, localhost.localdomain, , localhost
relayhost = smtp.mandrillapp.com:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# mynetworks = example.com
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks reject_unauth_destination
virtual_alias_maps = hash:/etc/postfix/generic

smtp_tls_loglevel = 1
smtp_tls_security_level = encrypt
smtp_sasl_security_options = noanonymous
smtp_generic_maps = hash:/etc/postfix/generic
Run Code Online (Sandbox Code Playgroud)

需要一些建议。这里出了什么问题?我对邮件服务器配置很陌生。如果有愚蠢的错误,请原谅我。

elt*_*rai 8

这里的问题是您配置了服务器,以便它将任何出站电子邮件中继到服务器,即smtp.mandrillapp.com. 反过来,该服务器不接受转发您的邮件。

我不认识这家公司,但我的猜测是他们只中继来自经过身份验证的客户的邮件,而您没有登录。

您可能应该在 main.cf 中的某处有类似以下行的内容

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/remote_passwords
smtp_sasl_security_options = noplaintext,noanonymous
smtp_sasl_tls_security_options = noanonymous
Run Code Online (Sandbox Code Playgroud)

该文件/etc/postfix/remote_passwords应该看起来像

smtp.mandrillapp.com:587 login:password
Run Code Online (Sandbox Code Playgroud)

使用来自 mandrillapp 的登录名/密码。

另外,我在您的配置文件中看到一个smtpd_sasl_auth_enable(注意 smtp 末尾的“d”),它仅在您希望客户端登录到您的服务器时才相关,并且我没有看到足够的配置。你应该确保它是必要的。