使用 MSMTP 通过 Exchange 服务器发送电子邮件

使用 MSMTP 通过 Exchange 服务器发送电子邮件

我已设置了一个 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。

  1. 通过 Telnet 连接到端口 25 上的 Exchange 服务器

  2. 输入 ehlo,如果响应中列出“250-STARTTLS”,则提供机会性 TLS。

如果没有,您需要在接收连接器上启用 TLS:

设置接收连接器“接收连接器名称” –DomainSecureEnabled $true –AuthMechanism TLS

但是,首先要了解您在做什么,因为接收连接器可能用于其他入站流量,并且它不会强制 TLS,因此请先阅读以下 Technet 文章!

有关在 Exchange 上设置相互 TLS 的更多信息,请参阅此处:http://technet.microsoft.com/en-us/library/bb123543.aspx

否则,如果您愿意,可以禁用 MSMTP 中的 TLS。

相关内容