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

Использование MSMTP для отправки электронной почты через сервер Exchange

У меня настроено веб-приложение PHP, которое, когда пользователь отправляет форму, отправляет электронное письмо с подтверждением от username@domainname.co.uk, а также отправляет сведения о своем запросе с того же адреса электронной почты в заранее определенный почтовый ящик. Он работает на сервере Debian Wheezy.

В процессе разработки я использовал учетную запись Gmail с MSMTP, которую легко настроить и она отлично работает. Однако мы скоро выйдем в эфир, и я хочу настроить его для отправки через существующий почтовый сервер для этого домена. Однако почтовый сервер использует MS Exchange, а поиск в Google при использовании Exchange с MSMTP не дает результатов.

В идеале я хотел бы просто изменить конфигурацию 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 username@domainname.co.uk
    host domainname.co.uk
    port 25
    #auth on
    from username@domainame.co.uk
    user username
    password password
    logfile /var/log/msmtp.log

    # ------------------------------------------------------------------------------
    # Configurations
    # ------------------------------------------------------------------------------

    # Construct envelope-from addresses of the form "user@oursite.example".
    #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 from=username@domainname.co.uk recipients=myusername@mydomain.com errormsg='the server does not support TLS via the STARTTLS command' exitcode=EX_UNAVAILABLE

Может ли кто-нибудь указать, где я ошибся с этим? Я полагаю, возможно, мне было бы лучше установить Postfix, настроить его как нулевого клиента и добавить сервер в записи MX, но я бы предпочел сделать это таким образом, чтобы отправленные электронные письма сохранялись на сервере Exchange.

сервер не поддерживает TLS через команду STARTTLS

Это ваша ошибка ... может показаться, что ваш сервер Exchange неправильно настроен для TLS.

  1. Telnet к серверу Exchange через порт 25

  2. Введите ehlo. Если в ответе указано «250-STARTTLS», предлагается Opportunistic TLS.

Если нет, вам нужно включить TLS на приемном соединителе:

Set-ReceiveConnector «ReceiveConnectorName» –DomainSecureEnabled $ true –AuthMechanism TLS

Однако сначала поймите, что вы делаете, так как соединитель приема может использоваться для другого входящего трафика и он не будет ПРИНУДИТЕЛЬНО TLS, поэтому прочитайте следующую статью Technet ПЕРВЫЕ!

Подробнее о настройке взаимного TLS на Exchange см. Здесь: http://technet.microsoft.com/en-us/library/bb123543.aspx

В противном случае вы можете отключить TLS в MSMTP, если хотите.