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

Не удается подключиться к SMTP через 587

Я настраиваю почтовый сервер на Ubuntu на основе: https://help.ubuntu.com/community/Postfix

В настоящее время я могу как отправлять, так и получать электронную почту с сервера. Однако попытки отправить электронную почту через SMTP из Gmail терпят неудачу из-за плохой аутентификации. Я проверил свой пароль, убедился, что порт открыт, и могу подключиться к IP-адресу и порту через Telnet.

Вывод Telnet (с удаленного хоста)

Computer:~ Louis$ telnet mail.mysite.com 587
Trying 71.66.218.124...
Connected to mail.mysite.com (71.66.218.124).
Escape character is '^]'.
220 mail.mysite.com ESMTP Postfix
ehlo mail.mysite.com
250-mail.mysite.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN
250-AUTH=DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

И, проверяя мою регистрационную информацию:

sudo testsaslauthd -u jon -p ********
0: OK "Success."

И в настоящее время прослушивающие порты:

netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN     
tcp6       0      0 :::587                  :::*                    LISTEN     
tcp6       0      0 :::110                  :::*                    LISTEN     
tcp6       0      0 :::143                  :::*                    LISTEN     
tcp6       0      0 :::4949                 :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::25                   :::*                    LISTEN

Есть идеи, почему я не могу удаленно настроить свой SMTP для отправки электронной почты?

РЕДАКТИРОВАТЬ

Я предпочитаю интерфейс Gmail и хотел бы объединить всю свою почту в одной онлайн-службе. Я могу добавить свою учетную запись POP3 в Gmail (настройки> учетные записи> Добавить собственную учетную запись POP3 Mail). После успешной аутентификации на моем сервере меня спрашивают, хочу ли я отправлять электронную почту через мои серверы smtp, на что я говорю да. Когда я пытаюсь войти в систему, я получаю следующее сообщение:

Ошибка аутентификации. Пожалуйста, проверьте ваше имя пользователя / пароль. [Ответ сервера: 535 5.7.8 Ошибка: ошибка аутентификации: код ошибки аутентификации (535)]

Я должен отметить, что это не проблема Gmail - я не могу пройти аутентификацию с ЛЮБОГО устройства или приложения через smtp. Однако я могу пройти аутентификацию с помощью инструментов на сервере и через telnet. . .

РЕДАКТИРОВАТЬ 2

Ошибки из /var/log/mail.log

2 февраля 14:52:42 Mysite postfix / smtpd [16527]: подключение с mail-ea0-f76.google.com [102.85.215.76] 2 февраля 14:52:43 Mysite postfix / smtpd [16527]: установлено анонимное соединение TLS от mail-ea0-f76.google.com [102.85.215.76]: TLSv1 с шифром ECDHE-RSA-RC4-SHA (128/128 бит) 2 февраля 14:52:43 Постфикс Mysite / smtpd [16527]: предупреждение: SASL Ошибка аутентификации: Ошибка проверки пароля 2 февраля 14:52:43 Mysite postfix / smtpd [16527]: предупреждение: mail-ea0-f76.google.com [102.85.215.76]: Ошибка аутентификации SASL PLAIN: ошибка аутентификации 2 февраля 14:52 : 43 Mysite postfix / smtpd [16527]: отключиться от mail-ea0-f76.google.com [102.85.215.76]

РЕДАКТИРОВАТЬ 3 Вот мой /etc/postfix/main.cf по запросу.

mydomain = mysite.com
biff = no
append_dot_mydomain = no
smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt
smtpd_tls_key_file = /etc/ssl/private/smtpd.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtp_sasl_auth_enable = yes
# password maps will not work. Customer must provide credentials
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name 
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mysite.localdomain, mysite, localhost.localdomain, localhost, mail.mysite.com, mysite.com
relayhost = 
mynetworks = 127.0.0.0/8
inet_interfaces = all
mailbox_size_limit = 0
recipient_delimiter = +
myorigin = mysite.com
inet_protocols = all
smtpd_sasl_local_domain = 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_note_starttls_offer = yes
smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = mail.mysite.com 
home_mailbox = Maildir/
mailbox_command = 
virtual_alias_domains = mysite.com
virtual_alias_maps = hash:/etc/postfix/virtual

Контрольный список аутентификации SASL

На основании вопросов и комментариев sasl может быть настроен неправильно. Следующий контрольный список создан на основе Путеводитель по Убунуту предоставлено в вопросе.

  1. Проверить файл/etc/postfix/sasl/smtpd.conf, должно быть похоже на следующее

    pwcheck_method: saslauthd
    mech_list: plain login
    
  2. Проверьте, установлен ли libsasl

    dpkg -l | grep sasl
    

    Должно быть следующее (номер версии может отличаться)

    ii  libsasl2-2           2.1.25.dfsg1-4    Cyrus SASL - authentication abstraction library
    ii  libsasl2-modules     2.1.25.dfsg1-4    Cyrus SASL - pluggable authentication modules
    ii  sasl2-bin            2.1.25.dfsg1-4    Cyrus SASL - administration programs for SASL users database
    
  3. Убедитесь, что saslauthd запущен

    ps -ef | grep sasl
    
  4. Проверить saslauthd PWDIR

    grep PWDIR /etc/default/saslauthd
    

    Выход должен быть

    PWDIR="/var/spool/postfix/var/run/saslauthd"
    

Подача постфикса / 587

  1. /etc/postfix/master.cf

    Руководство Ubuntu не комментирует только одну строку

    submission inet n       -       -       -       -       smtpd
    

    Попробуйте закомментировать весь раздел, включая следующие за ним варианты.

    submission inet n       -       -       -       -       smtpd
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      -o milter_macro_daemon_name=ORIGINATING
    

    Затем перезапустите postfix

    sudo service postfix restart
    
  2. Дважды проверьте свое имя для входа в smtp

    Поскольку в руководстве не используется виртуальный пользователь, ваше имя для входа в smtp должно быть joe только не joe@mysite.com. Дважды проверьте почтовые клиенты на ваших устройствах / компьютерах / веб-службах (Gmail). НЕ используя ваш адрес электронной почты в качестве имени для входа в smtp. (Многие делают это за вас. Если так, вам придется изменить это вручную.)

  3. Удалить карту паролей

    Я считаю, что вы аутентифицируетесь с использованием локальной учетной записи Linux, а не виртуального пользователя. Удалите следующие строки в /etc/postfix/main.cf

    # password maps will not work. Customer must provide credentials
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    

Еще один способ - использовать порт 465 и smtps.

http://ubuntuforums.org/showthread.php?t=1946910

Вы упомянули, что пытаетесь отправить почту через SMTP из Gmail. Внешние общедоступные почтовые серверы, доставляющие почту в ваш домен, обычно не будут аутентифицироваться для вашего smtpd (конечно, они не будут передавать учетные данные, с которыми вы вошли в Gmail!). Ваш SMTP-сервер должен разрешать ретрансляцию на адреса в вашем домене без аутентификации (чтобы можно было получать входящую почту) и требовать аутентификации только для "исходящей" почты (которая ретранслируется в другие домены).

Из вашего комментария, похоже, вам требуется аутентификация для всей ретрансляции. У Gmail нет учетных данных, поэтому, конечно, он не сможет пройти аутентификацию на вашем почтовом сервере.