我已设置了一个 PHP Web 应用程序,当用户提交表单时,它会从 发送一封确认电子邮件[email protected]
,还会从同一电子邮件地址向预定义的邮箱发送其查询的详细信息。它在 Debian Wheezy 服务器上运行。
在开发过程中,我使用的是带有 MSMTP 的 Gmail 帐户,该帐户设置简单,运行良好。但是,我们很快就要上线了,我想将其配置为通过该域的现有邮件服务器发送。但是,邮件服务器使用 MS Exchange,而 Google 搜索并没有显示太多关于使用带有 MSMTP 的 Exchange 的信息。
理想情况下,我只想修改 MSMTP 配置,以便它可以通过现有的 Exchange 发送电子邮件,就像我已经做的那样,但我似乎无法正确配置它。这是我的 /etc/msmtprc:
# ------------------------------------------------------------------------------
# msmtp System Wide Configuration file
# ------------------------------------------------------------------------------
# A system wide configuration is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.
# ------------------------------------------------------------------------------
# Accounts
# ------------------------------------------------------------------------------
# Main Account
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account [email protected]
host domainname.co.uk
port 25
#auth on
from [email protected]
user username
password password
logfile /var/log/msmtp.log
# ------------------------------------------------------------------------------
# Configurations
# ------------------------------------------------------------------------------
# Construct envelope-from addresses of the form "[email protected]".
#auto_from on
#maildomain fermmy.server
# Use TLS.
#tls on
#tls_trust_file /etc/ssl/certs/ca-certificates.crt
# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
# Must be done within "account" sub-section above
#syslog LOG_MAIL
# Set a default account
# ------------------------------------------------------------------------------
这是我收到的错误消息/var/log/msmtp.log
:
Sep 23 11:34:44 host=username.co.uk tls=on auth=on user=username [email protected] [email protected] errormsg='the server does not support TLS via the STARTTLS command' exitcode=EX_UNAVAILABLE
有人能指出我哪里出了问题吗?我想我最好安装 Postfix,将其设置为空客户端,然后将服务器添加到 MX 记录中,但我更愿意这样做,以便 Exchange 服务器保留已发送的电子邮件。
答案1
服务器不支持通过 STARTTLS 命令使用 TLS
这是您的错误...所以看起来您的 Exchange 服务器没有正确设置 TLS。
通过 Telnet 连接到端口 25 上的 Exchange 服务器
输入 ehlo,如果响应中列出“250-STARTTLS”,则提供机会性 TLS。
如果没有,您需要在接收连接器上启用 TLS:
设置接收连接器“接收连接器名称” –DomainSecureEnabled $true –AuthMechanism TLS
但是,首先要了解您在做什么,因为接收连接器可能用于其他入站流量,并且它不会强制 TLS,因此请先阅读以下 Technet 文章!
有关在 Exchange 上设置相互 TLS 的更多信息,请参阅此处:http://technet.microsoft.com/en-us/library/bb123543.aspx
否则,如果您愿意,可以禁用 MSMTP 中的 TLS。