탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 네트워크 서비스 Oracle Solaris 11 Information Library (한국어) |
sendmail.cf의 대체 구성을 사용하여 메일 배달을 관리하는 방법
각 로컬 /etc/mail/aliases 파일에서 postmaster 별칭을 만드는 방법
postmaster에 대해 별도의 우편함을 만드는 방법
/etc/mail/aliases 파일에서 postmaster 우편함을 별칭에 추가하는 방법
메일 대기열 /var/spool/mqueue의 컨텐츠 표시 방법
메일 대기열 /var/spool/mqueue에서 메일 대기열 처리 강제 실행 방법
메일 대기열 /var/spool/mqueue의 일부를 실행하는 방법
메일 대기열 /var/spool/mqueue 이동 방법
이전의 메일 대기열 /var/spool/omqueue 실행 방법
이 절에는 메일 서비스의 문제 해결에 사용할 수 있는 몇 가지 절차와 팁이 있습니다.
구성 파일에 대한 변경 사항을 테스트하려면 다음 절차를 따릅니다.
# svcadm refresh network/smtp:sendmail
# /usr/lib/sendmail -v names </dev/null
받는 사람 전자 메일 주소를 지정합니다.
이 명령은 지정된 받는 사람에게 null 메시지를 보내고 모니터에 메시지 작업을 표시합니다.
주 시스템에서 클라이언트 시스템으로
클라이언트 시스템에서 주 시스템으로
클라이언트 시스템에서 다른 클라이언트 시스템으로
sendmail 프로그램은 배달을 위해 UUCP를 통과하므로 메시지가 배달되는지 여부를 알 수 없습니다.
다음 예에서는 별칭 확인 방법을 보여줍니다.
% mconnect connecting to host localhost (127.0.0.1), port 25 connection open 220 your.domain.com ESMTP Sendmail 8.13.6+Sun/8.13.6; Tue, 12 Sep 2004 13:34:13 -0800 (PST) expn sandy 250 2.1.5 <sandy@phoenix.example.com> quit 221 2.0.0 your.domain.com closing connection %
이 예에서 mconnect 프로그램은 로컬 호스트에서 메일 서버와의 연결을 열고 해당 연결을 테스트할 수 있게 해줍니다. 프로그램은 대화형으로 실행되므로 다양한 진단 명령을 실행할 수 있습니다. 자세한 내용은 mconnect(1) 매뉴얼 페이지를 참조하십시오. 항목 expn sandy는 확장된 주소 sandy@phoenix.example.com을 제공합니다. 따라서 별칭 sandy를 사용하여 메일을 배달할 수 있음을 확인했습니다.
로컬 및 도메인 차원의 별칭이 둘 다 사용되는 경우 루프와 일관성 없는 데이터베이스를 피해야 합니다. 특히 한 시스템에서 다른 시스템으로 사용자를 이동할 때 별칭 루프가 생성되지 않도록 주의하십시오.
sendmail 규칙 세트의 입력과 반환을 확인하려면 다음 지침을 따릅니다.
# /usr/lib/sendmail -bt
마지막 프롬프트(>)에 다음 번호와 숫자를 입력합니다.
> 3,0 mail-sraddress
테스트하려는 메일 주소를 사용합니다.
Ctrl-d를 누릅니다.
예 13-3 주소 테스트 모드 출력
다음은 주소 테스트 모드의 출력 예입니다.
% /usr/lib/sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 sandy@phoenix canonify input: sandy @ phoenix Canonify2 input: sandy < @ phoenix > Canonify2 returns: sandy < @ phoenix . example . com . > canonify returns: sandy < @ phoenix . example . com . > parse input: sandy < @ phoenix . example . com . > Parse0 input: sandy < @ phoenix . example . com . > Parse0 returns: sandy < @ phoenix . example . com . > ParseLocal input: sandy < @ phoenix . example . com . > ParseLocal returns: sandy < @ phoenix . example . com . > Parse1 input: sandy < @ phoenix . example . com . > MailerToTriple input: < mailhost . phoenix . example . com > sandy < @ phoenix . example . com . > MailerToTriple returns: $# relay $@ mailhost . phoenix . example . com $: sandy < @ phoenix . example . com . > Parse1 returns: $# relay $@ mailhost . phoenix . example . com $: sandy < @ phoenix . example . com . > parse returns: $# relay $@ mailhost . phoenix . example . com $: sandy < @ phoenix . example . com . >
mconnect 프로그램은 지정된 메일 서버와의 연결을 열고 해당 연결을 테스트할 수 있게 해줍니다. 프로그램은 대화형으로 실행되므로 다양한 진단 명령을 실행할 수 있습니다. 자세한 내용은 mconnect(1) 매뉴얼 페이지를 참조하십시오. 다음 예에서는 사용자 이름 sandy에 대한 메일을 배달할 수 있는지 확인합니다.
% mconnect phoenix connecting to host phoenix (172.31.255.255), port 25 connection open 220 phoenix.example.com ESMTP Sendmail 8.13.1+Sun/8.13.1; Sat, 4 Sep 2004 3:52:56 -0700 expn sandy 250 2.1.5 <sandy@phoenix.example.com> quit
mconnect를 사용하여 SMTP 포트에 연결할 수 없으면 다음 조건을 확인하십시오.
시스템 로드가 너무 높습니까?
sendmail 데몬이 실행 중입니까?
시스템에 적절한 /etc/mail/sendmail.cf 파일이 있습니까?
sendmail에 사용되는 포트 25가 활성 상태입니까?
메일 서비스는 syslogd 프로그램을 사용하여 대부분의 오류 메시지를 기록합니다. 기본적으로 syslogd 프로그램은 loghost라는 시스템에 이 메시지를 보냅니다. 이 시스템은 /etc/hosts 파일에 지정되어 있습니다. loghost를 정의하여 전체 NIS 도메인의 로그를 모두 보관할 수 있습니다. loghost가 지정되지 않으면 syslogd의 오류 메시지가 보고되지 않습니다.
/etc/syslog.conf 파일은 syslogd 프로그램이 메시지를 전달하는 위치를 제어합니다. /etc/syslog.conf 파일을 편집하여 기본 구성을 변경할 수 있습니다. syslog 데몬을 다시 시작해야 변경 사항이 활성화됩니다. 메일에 대한 정보를 수집하려면 다음 선택 항목을 파일에 추가합니다.
mail.alert – 지금 해결할 조건에 대한 메시지
mail.crit – 중요 메시지
mail.warning – 경고 메시지
mail.notice – 오류는 아니지만 주의해야 할 메시지
mail.info – 정보 메시지
mail.debug – 디버깅 메시지
/etc/syslog.conf 파일에서 다음 항목이 중요, 정보, 디버그 메시지를 모두 /var/log/syslog로 보냅니다.
mail.crit;mail.info;mail.debug /var/log/syslog
시스템 로그의 각 행에는 시간 기록, 행을 생성한 시스템의 이름 및 메시지가 있습니다. syslog 파일은 대량의 정보를 기록할 수 있습니다.
로그는 연속된 레벨로 배열됩니다. 가장 낮은 레벨에서는 비정상적인 사항만 기록됩니다. 가장 높은 레벨에서는 가장 일상적인 이벤트까지도 기록됩니다. 규약에 따라 10 이하의 로그 레벨이 “유용”합니다. 10보다 높은 로그 레벨은 주로 디버깅에 사용됩니다. loghost 및 syslogd 프로그램에 대한 자세한 내용은 Oracle Solaris 관리: 일반 작업의 시스템 메시지 로깅 사용자 정의를 참조하십시오.
기타 진단 정보는 다음 소스를 확인하십시오.
메시지 헤더에서 Received 행을 확인합니다. 이 행은 메시지가 중계될 때 메시지가 이동한 경로를 추적합니다. 표준 시간대가 다르다는 점에 유의합니다.
시스템 그룹의 배달 문제를 기록하는 시스템 로그를 확인합니다. sendmail 프로그램은 항상 시스템 로그에 작업을 기록합니다. crontab 파일을 수정하여 셸 스크립트를 야간에 실행할 수 있습니다. 스크립트는 로그에서 SYSERR 메시지를 검색하고 발견된 메시지를 포스트마스터에게 메일로 보냅니다.
mailstats 프로그램을 사용하여 메일 유형을 테스트하고 받는 메시지와 보내는 메시지 수를 결정합니다.