sendmail의 로그는 어디에서 확인합니까?


103

이메일을 보낼 수 없습니다.

통나무를 살펴 봐야합니다

그러나 로그는 어디에 있습니까?


4
사용중인 OS를 알려주시겠습니까? 다른 사람들이 아래에 언급했듯이 대부분의 시스템에서는 / var / log / maillog입니다. Solaris에서는 / var / adm / maillog입니다. 데비안 / 우분투에서는 /var/log/mail.log입니다 (점 참고).
Gerald Combs

1
tail -f / var / log / maillog
Thomas Denton

답변:


72

로그는 어디에 있습니까?

기본 위치는 Linux / unix 시스템에 따라 다르지만 가장 일반적인 위치는

  • / var / log / maillog
  • /var/log/mail.log
  • / var / adm / maillog
  • /var/adm/syslog/mail.log

거기가 아니라면, 찾아 /etc/syslog.conf. 당신은 이와 같은 것을보아야합니다

mail.*         -/var/log/maillog

sendmailmailsyslog 기능에 로그를 기록합니다 . 따라서 어떤 파일을 쓸지syslog 구성 방법에 따라 다릅니다 .

시스템이 "전통적인" syslog 대신 syslog-ng를 사용하는 경우 파일 을 찾아야 합니다. 당신은 이런 식으로해야합니다 :syslog-ng.conf

# This files are the log come from the mail subsystem.
#
destination mail     { file("/var/log/mail.log"); };
destination maillog  { file("/var/log/maillog"); };
destination mailinfo { file("/var/log/mail.info"); };
destination mailwarn { file("/var/log/mail.warn"); };
destination mailerr  { file("/var/log/mail.err"); };

이메일을 보낼 수 없습니까?

새로 설치 한 sendmail에서 전자 메일을 보낼 수없는 가장 일반적인 이유 중 하나는 DAEMON_OPTIONS가 127.0.0.1에서만 수신하도록 설정되어 있기 때문입니다.

/etc/mail/sendmail.mc를 참조하십시오

dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

이 경우 "Addr = 127.0.0.1"부분을 제거하고 conf 파일을 다시 빌드하십시오.

DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

[root@server]$ m4 sendmail.mc > /etc/sendmail.cf
[root@server]$/etc/init.d/sendmail restart

지금까지 * .m4 파일 대신 /etc/sendmail.cf를 수동으로 변경 한 경우 /etc/sendmail.cf에서 비슷한 변경을 수행 할 수 있습니다. 문제의 줄은 다음과 같습니다 :

O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

다음으로 변경하십시오.

O DaemonPortOptions=Port=smtp, Name=MTA

1
tail -f / var / log / maillog
Thomas Denton

1
여기서 핵심은 다음과 같습니다. /etc/mail/sendmail.mc의 "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA"매우 유용한 팁입니다. 내 하루를
구해줘 서

1
그러나 왜 127.0.0.1을 제거합니까? 퍼블릭 인터페이스에서 수신 대기하는 데몬이 가장 안전한 방법은 아닙니다. (OP와 관련이 없으므로 "이메일을 보낼 수 없습니다"부분 전체를 제거하는 것이 좋습니다.)
Alois Mahdal

23

* nix를 사용중인 경우 / var / log / maillog 또는 / var / log / messages를 확인하십시오.

또한 아무 것도 나오지 않으면 다음과 같이 방화벽을 확인하십시오 (루트로 수행해야 함).

[root @ web01 ~] # iptables -L
체인 입력 (정책 수락)
대상 단백질 소스 대상 선택         
ACCEPT TCP-어디에서나 tcp dpt : ms-v-worlds 
ACCEPT tcp-어디에서나 tcp dpt : imaps 
ACCEPT tcp-어디에서나 tcp dpt : imap 
ACCEPT tcp-어디에서나 tcp dpt : pop3 
ACCEPT tcp-어디에서나 tcp dpt : smtp 
           tcp-어디에서나 tcp dpt : ssh 상태 새로운 최근 : SET 이름 : SSH 측 : 소스 
DROP tcp-어디에서나 tcp dpt : ssh 상태 새로운 최근 : UPDATE 초 : 60 hit_count : 8 TTL 일치 이름 : SSH 측 : 소스 

체인 포워드 (정책 수락)
대상 단백질 소스 대상 선택         

체인 출력 (정책 수락)
대상 단백질 소스 대상 선택         

체인 RH-Firewall-1-INPUT (0 참조)
대상 단백질 소스 대상 선택         
[root @ xxxx ~] # 

1
또는 * nix에서 /etc/syslog.conf에서 해당 로그 메시지가 전송 될 수있는 곳을 확인하십시오.
Liudvikas Bukys

iptables에 smtp가 입력되지 않음
Umair

5

/var/log/mail.info 또는 /var/log/mail.err를보십시오


2

현재 캐시 된 발신 메일에 대해 / var / spool / mqueue도 확인하십시오.


2

fedora et al. journalctl _COMM = sendmail은 sendmail의 메시지를 보여줍니다.

나는 검색을 통해이 답변으로 향했다. / var / log / mail은 Fedora의 '통계'파일 만 포함합니다. 그리고 언급 된 다른 모든 디렉토리는 존재하지 않습니다.

사용할 매개 변수 인 ymmv를 모르면 journalctl은 충분히 직관적이지 않습니다. 그래서이 솔루션을 게시했습니다.



-1

당신은 당신의 자신의 로그 파일을 만들 수 있습니다

[admin@local ~]# killall sendmail
[admin@local ~]# touch /var/log/sendmail.log
[admin@local ~]# sendmail -bd -q15m >> /var/log/sendmail.log

그리고

[admin@local ~]# tail -f /var/log/sendmail.log

451 4.0.0 /fake/path/sendmail.cf: line 0: cannot open: No such file or directory
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.