sendmail smtp 認証は簡単ですが、なぜ認証に失敗するのでしょうか?

sendmail smtp 認証は簡単ですが、なぜ認証に失敗するのでしょうか?

sendmailではsmtp auth saslが実行されているためこれを実行しました

root      1609     1  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1610  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1611  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1612  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5
root      1613  1609  0 05:16 ?        00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/run/saslauthd -n 5

Sasl sendmail が設定されています (/usr/lib/sasl2/sendmail.conf)

pwcheck_method: saslauthd
mech_list: LOGIN PLAIN

私はsendmail smtpを次のように設定しました

define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl

もちろん、ファイルをコンパイルしてsendmailを再起動すると、smtp認証が機能しているようです(telnet localhost)

250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 2097152
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP

私がそうすると、認証ログインはbase64でエンコードされたユーザー名を要求し、それを入力してからパスワードを入力し、それを与えて

535 5.7.0 authentication failed

base64に変換するにはこのスクリプトを使用します

#!/usr/bin/perl
use strict;
use MIME::Base64;
print encode_base64("$ARGV[0]");
exit 0;

もちろん、saslpasswd2 ユーザーが最初に指定されました。何か提案はありますか?

答え1

解決策が見つかりましたここ

saslauthdに-a pamを使用する代わりに、次のように-a sasldbを使用します。

saslauthd  -a sasldb

関連情報