จะตรวจสอบบันทึกของ sendmail ได้ที่ไหน?


103

ฉันไม่สามารถส่งอีเมลได้

ต้องดูในบันทึก

แต่บันทึกอยู่ที่ไหน


4
ต้องการแจ้งให้เราทราบว่าคุณใช้ระบบปฏิบัติการใดอยู่ ดังที่คนอื่น ๆ ได้ระบุไว้ด้านล่างในระบบส่วนใหญ่จะเป็น / var / log / maillog บน Solaris คือ / var / adm / maillog บน Debian / Ubuntu มันเป็น /var/log/mail.log (จดจุด)
เจอรัลด์รวงผึ้ง

1
tail -f / var / log / maillog
โธมัสเดนตัน

คำตอบ:


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

sendmailเขียนบันทึกไปยังmailสิ่งอำนวยความสะดวกของ syslog ดังนั้นไฟล์ที่ได้รับการเขียนขึ้นอยู่กับวิธีกำหนดค่าsyslog

หากระบบของคุณใช้syslog-ng (แทนที่จะเป็นsyslog "แบบดั้งเดิม" ) คุณจะต้องค้นหา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

หากคุณทำการเปลี่ยนแปลง /etc/sendmail.cf ด้วยตนเองแล้ว (แทนที่จะเป็นไฟล์ * .m4) คุณสามารถทำการเปลี่ยนแปลงที่คล้ายกันใน /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
ฉันคิดว่ากุญแจสำคัญคือ: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, ชื่อ = MTA" ใน /etc/mail/sendmail.mc เคล็ดลับที่ดีมาก บันทึกวันของฉันแล้วขอบคุณ
serfer2

1
แต่ทำไมลบ 127.0.0.1 การมีดีมอนเพื่อฟังบนอินเทอร์เฟซสาธารณะดูเหมือนจะเป็นวิธีที่ปลอดภัยที่สุด (ฉันขอแนะนำให้ลบส่วน "ไม่สามารถส่งอีเมล" ออกทั้งหมดเนื่องจากไม่เกี่ยวข้องกับ OP)
Alois Mahdal

23

ตรวจสอบ / var / log / maillog หรือ / var / log / Messages หากคุณใช้ * nix

นอกจากนี้หากไม่มีอะไรออกไปข้างนอกคุณอาจต้องการตรวจสอบไฟร์วอลล์ของคุณดังต่อไปนี้ (อย่าลืมทำเช่นนี้ในฐานะรูท):

[root @ web01 ~] # iptables -L
Chain INPUT (นโยบายยอมรับ)
ปลายทางต้นทางปลายทางเลือก opt         
ยอมรับ tcp - ทุกที่ทุกเวลา tcp dpt: ms-v-worlds 
ยอมรับ tcp - ทุกที่ทุกเวลา tcp dpt: imaps 
ยอมรับ tcp - ทุกที่ทุกเวลา tcp dpt: imap 
ยอมรับ tcp - ทุกที่ทุกเวลา tcp dpt: pop3 
ยอมรับ tcp - ทุกที่ทุกเวลา tcp dpt: smtp 
           tcp - ที่ใดก็ได้ tcp dpt: ssh state ใหม่ล่าสุด: ชื่อ SET: ด้าน SSH: แหล่งที่มา 
DROP tcp - ทุกที่ทุกเวลา tcp dpt: ssh state ใหม่ล่าสุด: อัปเดตวินาที: 60 hit_count: 8 ชื่อ TTL-Match: ด้าน SSH: แหล่งที่มา 

เชนไปข้างหน้า (นโยบายยอมรับ)
ปลายทางต้นทางปลายทางเลือก opt         

เชนเอาท์พุท (นโยบายยอมรับ)
ปลายทางต้นทางปลายทางเลือก opt         

Chain RH-Firewall-1-INPUT (การอ้างอิง 0)
ปลายทางต้นทางปลายทางเลือก opt         
[root @ xxxx ~] # 

1
หรือบน * ระวังโปรดดูที่ /etc/syslog.conf เพื่อดูว่ามีการส่งข้อความบันทึกไปยังที่ใด
Liudvikas Bukys

ฉันไม่เห็นรายการ smtp ใน iptables
Umair



2

สำหรับ fedora et al. journalctl _COMM = sendmail จะแสดงข้อความจาก sendmail

ฉันถูกนำไปยังคำตอบนี้ผ่านการค้นหา / var / log / mail มีเพียงไฟล์ 'สถิติ' ใน Fedora เท่านั้น และไดเรกทอรีอื่น ๆ ที่กล่าวถึงทั้งหมดนั้นไม่มีอยู่จริง

journalctl นั้นใช้งานง่ายไม่พอถ้าคุณไม่รู้ว่าจะใช้พารามิเตอร์ใด, ymmv ดังนั้นฉันโพสต์โซลูชั่นนี้



-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.