私は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
質問とコメントに基づいて、saslが正しく設定されていない可能性があります。以下のチェックリストは、問題の bunut Guide に基づいて作成されます。
File/etc/postfix/sasl/smtpd.conf
を確認してください。次のようになります。
pwcheck_method: saslauthd
mech_list: plain login
インストールされている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
Saslauthdが実行されていることを確認します
ps -ef | grep sasl
Saslauthd PWDIR
を確認してください
grep PWDIR /etc/default/saslauthd
出力は
PWDIR="/var/spool/postfix/var/run/saslauthd"
/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
SMTPログイン名を再確認してください
ガイドは仮想ユーザーを使用していないため、SMTPログイン名は[email protected]
ではなくjoe
のみにする必要があります。あなたのデバイス/コンピューター/ウェブサービス(gmail)のメールクライアントを再確認してください[〜#〜]ではありません[〜#〜]あなたのメールアドレスをSMTPとして使用していますログイン名。 (多くの場合、それを行います。その場合は、手動で変更する必要があります。)
パスワードマップを削除する
仮想ユーザーではなく、ローカル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を使用することです。
GmailからSMTP経由でメールを送信しようとしているとのことです。ドメインにメールを配信する外部のパブリックメールサーバーは、通常、smtpdに対して認証されません(確かに、Gmailにログインした資格情報は渡されません!)。 SMTPサーバーは、認証なしでドメイン内のアドレスへの中継を許可し(受信メールを受信できるようにするため)、「送信」メール(他のドメインに中継される)に対してのみ認証を要求する必要があります。
あなたのコメントから、あなたはすべての中継のために認証を要求しているようです。 Gmailには提供する資格情報がないため、もちろんメールサーバーへの認証はできません。