sendmail에서 smtp 인증 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 사용자가 먼저 주어졌습니다. 어떤 제안이 있습니까?