web-dev-qa-db-ja.com

587を介してSMTPに接続できません

私はUbuntuでメールサーバーをセットアップしています: https://help.ubuntu.com/community/Postfix

現在、サーバーからメールを送受信できます。ただし、GmailからSMTPを介して電子メールを送信しようとすると、認証が正しく行われずに失敗します。パスワードを確認し、ポートが開いていることを確認し、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のインターフェースを優先しており、すべてのメールを1つのオンラインサービスに集約したいと考えています。 GmailにPOP3アカウントを追加できます([設定]> [アカウント]> [独自のPOP3メールアカウントを追加])。サーバーでの認証に成功した後、サーバーのSMTPを介して電子メールを送信するかどうかを尋ねられます。これに対して「はい」と答えます。ログインしようとすると、次のメッセージが表示されます。

認証に失敗しました。ユーザー名/パスワードを確認してください。 [サーバーの応答:535 5.7.8エラー:認証に失敗しました:認証失敗コード(535)]

これはGmailの問題ではないことに注意してください。SMTPを介してどのデバイスまたはアプリケーションからも認証できません。ただし、サーバー上のツールを使用して、telnet経由で認証できます。 。 。

編集2

/var/log/mail.logからのエラー

2月2日14:52:42Mysite postfix/smtpd [16527]:mail-ea0-f76.google.com [102.85.215.76]から接続2月2日14:52:43Mysite postfix/smtpd [16527]:匿名TLS接続が確立されましたmail-ea0-f76.google.com [102.85.215.76]から:暗号ECDHE-RSA-RC4-SHAを使用したTLSv1(128/128ビット)2月2日14:52:43 Mysite postfix/smtpd [16527]:警告:SASL認証の失敗:パスワードの検証に失敗しました2月2日14:52:43 Mysite postfix/smtpd [16527]:警告:mail-ea0-f76.google.com [102.85.215.76]:SASL PLAIN認証に失敗しました:認証に失敗しました2月2日14:52 :43 Mysite postfix/smtpd [16527]:mail-ea0-f76.google.com [102.85.215.76]から切断します

EDIT 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
2
Julio

SASL認証チェックリスト

質問とコメントに基づいて、saslが正しく設定されていない可能性があります。以下のチェックリストは、問題の bunut Guide に基づいて作成されます。

  1. File/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ガイドは1行のコメントを解除するだけです

    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
    

    次に、接尾辞を再起動します

    Sudo service postfix restart
    
  2. SMTPログイン名を再確認してください

    ガイドは仮想ユーザーを使用していないため、SMTPログイン名は[email protected]ではなくjoeのみにする必要があります。あなたのデバイス/コンピューター/ウェブサービス(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
    
4
John Siu

試す別のルートは、ポート465とsmtpsを使用することです。

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

0
Stephan

GmailからSMTP経由でメールを送信しようとしているとのことです。ドメインにメールを配信する外部のパブリックメールサーバーは、通常、smtpdに対して認証されません(確かに、Gmailにログインした資格情報は渡されません!)。 SMTPサーバーは、認証なしでドメイン内のアドレスへの中継を許可し(受信メールを受信できるようにするため)、「送信」メール(他のドメインに中継される)に対してのみ認証を要求する必要があります。

あなたのコメントから、あなたはすべての中継のために認証を要求しているようです。 Gmailには提供する資格情報がないため、もちろんメールサーバーへの認証はできません。

0
Falcon Momot