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 사용자를 위한 제안이 있습니까?