Kiểm tra nhật ký của sendmail ở đâu?


103

Tôi không thể gửi email,

cần nhìn vào nhật ký

nhưng nhật ký ở đâu?


4
Muốn cho chúng tôi biết bạn đang sử dụng hệ điều hành nào? Như những người khác đã lưu ý dưới đây, trên hầu hết các hệ thống, đó là / var / log / maillog. Trên Solaris, nó là / var / adm / maillog. Trên Debian / Ubuntu, nó /var/log/mail.log (lưu ý dấu chấm).
Gerald Combs

1
đuôi -f / var / log / maillog
Thomas Denton

Câu trả lời:


72

Nhật ký ở đâu?

Vị trí mặc định phụ thuộc vào hệ thống linux / unix của bạn, nhưng những nơi phổ biến nhất là

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

Nếu nó không ở đó, hãy tìm kiếm /etc/syslog.conf. Bạn sẽ thấy một cái gì đó như thế này

mail.*         -/var/log/maillog

sendmail viết nhật ký đến mailcơ sở của syslog. Do đó, tập tin nào được ghi phụ thuộc vào cách syslog được cấu hình.

Nếu hệ thống của bạn sử dụng syslog-ng (thay vì syslog "truyền thống" hơn ), thì bạn sẽ phải tra cứu syslog-ng.conftệp của mình . Bạn sẽ nên một cái gì đó như thế này:

# 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"); };

Không thể gửi email?

Một trong những lý do phổ biến nhất mà tôi thấy đối với một sendmail mới được cài đặt không thể gửi email là DAEMON_OPTIONS được đặt để chỉ nghe trên 127.0.0.1

Xem /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

Nếu đó là trường hợp của bạn, hãy xóa phần "Addr = 127.0.0.1", xây dựng lại tệp conf của bạn và bạn vẫn ổn!

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

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

Nếu bạn đã thực hiện các thay đổi đối với /etc/sendmail.cf theo cách thủ công cho đến nay (thay vì tệp * .m4), bạn có thể thực hiện các thay đổi tương tự trong /etc/sendmail.cf. Dòng vi phạm sẽ trông như thế này:

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

Thay đổi nó thành:

O DaemonPortOptions=Port=smtp, Name=MTA

1
đuôi -f / var / log / maillog
Thomas Denton

1
Tôi nghĩ, chìa khóa ở đây là: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA" trong /etc/mail/sendmail.mc Mẹo rất hay. Cứu tôi một ngày, cảm ơn
serfer2

1
Nhưng tại sao phải xóa 127.0.0.1? Có daemon để nghe trên giao diện công cộng dường như không phải là cách an toàn nhất để làm. (Tôi đề nghị xóa toàn bộ phần "Không thể gửi email" vì nó không liên quan đến OP.)
Alois Mahdal

23

kiểm tra / var / log / maillog hoặc / var / log / message nếu bạn đang bật * nix

Ngoài ra, nếu không có gì xảy ra, bạn có thể muốn kiểm tra tường lửa của mình như sau (hãy chắc chắn làm điều này với quyền root):

[root @ web01 ~] # iptables -L
Chuỗi INPUT (CHẤP NHẬN chính sách)
đích đích chọn nguồn tham gia         
CHẤP NHẬN tcp - mọi nơi mọi nơi tcp dpt: ms-v-worlds 
CHẤP NHẬN tcp - mọi nơi mọi nơi tcp dpt: imaps 
CHẤP NHẬN tcp - mọi nơi mọi nơi tcp dpt: imap 
CHẤP NHẬN tcp - mọi nơi mọi nơi tcp dpt: pop3 
CHẤP NHẬN tcp - mọi nơi mọi nơi tcp dpt: smtp 
           tcp - mọi nơi mọi nơi tcp dpt: ssh bang MỚI gần đây: Tên SET: SSH side: source 
DROP tcp - mọi nơi mọi nơi tcp dpt: trạng thái ssh MỚI gần đây: CẬP NHẬT giây: 60 hit_count: 8 TTL-Tên trận đấu: SSH side: source 

Chuỗi FORWARD (CHẤP NHẬN chính sách)
đích đích chọn nguồn tham gia         

Đầu ra chuỗi (CHẤP NHẬN chính sách)
đích đích chọn nguồn tham gia         

Chuỗi RH-Firewall-1-INPUT (0 tài liệu tham khảo)
đích đích chọn nguồn tham gia         
[root @ xxxx ~] # 

1
Hoặc, trên * nix, hãy xem trong /etc/syslog.conf để xem những thông điệp nhật ký khác có thể được gửi đến đâu.
Liudvikas Bukys

tôi thấy không có mục nào của smtp trong iptables
Umair

5

Hãy thử xem /var/log/mail.info hoặc /var/log/mail.err


2

đồng thời kiểm tra / var / spool / mqueue cho thư gửi đi được lưu trong bộ nhớ cache hiện tại


2

Đối với fedora et al. Tạp chí _COMM = sendmail sẽ hiển thị các tin nhắn từ sendmail.

Tôi đã được chuyển đến câu trả lời này thông qua một tìm kiếm. / var / log / mail chỉ chứa tệp 'thống kê' trên Fedora. Và tất cả các thư mục được đề cập khác là không tồn tại.

Tạp chí không đủ trực quan nếu bạn không biết nên sử dụng tham số nào, ymmv. Vì vậy, tôi đã đăng giải pháp này.



-1

Bạn có thể tạo tệp nhật ký của riêng bạn

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

và sau đó

[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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.