Tôi không thể gửi email,
cần nhìn vào nhật ký
nhưng nhật ký ở đâu?
Tôi không thể gửi email,
cần nhìn vào nhật ký
nhưng nhật ký ở đâu?
Câu trả lời:
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à
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"); };
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
              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 ~] # 
              đồ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
Đố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.
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