Di mana memeriksa log sendmail?

103

Saya tidak bisa mengirim email,

perlu melihat ke dalam log,

tetapi di mana log?


sumber
4
Ingin memberi tahu kami OS apa yang Anda gunakan? Seperti yang orang lain catat di bawah ini, pada kebanyakan sistem itu / var / log / maillog. Di Solaris itu / var / adm / maillog. Di Debian / Ubuntu itu /var/log/mail.log (perhatikan titik).
Gerald Combs
1
tail -f / var / log / maillog
Thomas Denton

Jawaban:

72

Di mana log?

Lokasi default tergantung pada sistem linux / unix Anda, tetapi tempat yang paling umum adalah

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

Jika tidak ada di sana, lihat ke atas /etc/syslog.conf. Anda harus melihat sesuatu seperti ini

mail.*         -/var/log/maillog

sendmail menulis log ke mailfasilitas syslog. Oleh karena itu, file mana yang akan ditulis tergantung pada bagaimana syslog dikonfigurasi.

Jika sistem Anda menggunakan syslog-ng (bukannya lebih "tradisional" syslog ), maka Anda akan harus mencari Anda syslog-ng.confberkas. Anda akan mendapatkan sesuatu seperti ini:

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

Tidak dapat mengirim email?

Salah satu alasan paling umum yang saya lihat untuk sendmail yang baru diinstal tidak dapat mengirim email adalah DAEMON_OPTIONS ditetapkan untuk mendengarkan hanya pada 127.0.0.1

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

Jika itu kasus Anda, hapus bagian "Addr = 127.0.0.1", bangun kembali file conf Anda dan Anda siap melakukannya!

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

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

Jika Anda telah melakukan perubahan pada /etc/sendmail.cf secara manual sejauh ini (daripada file * .m4), Anda dapat membuat perubahan serupa di /etc/sendmail.cf. Baris yang menyinggung akan terlihat seperti ini:

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

Ubah ke:

O DaemonPortOptions=Port=smtp, Name=MTA
Shawn Chin
sumber
1
tail -f / var / log / maillog
Thomas Denton
1
Saya pikir, kuncinya di sini adalah: "DaemonPortOptions = Port = smtp, Addr = 127.0.0.1, Name = MTA" di /etc/mail/sendmail.mc Tip yang sangat bagus.
Selamatkan
1
Tapi mengapa menghapus 127.0.0.1? Memiliki daemon untuk mendengarkan di antarmuka publik sepertinya bukan cara yang paling aman untuk dilakukan. (Saya sarankan untuk menghapus seluruh bagian "Tidak dapat mengirim email" karena tidak relevan dengan OP.)
Alois Mahdal
23

periksa / var / log / maillog atau / var / log / messages jika Anda menggunakan * nix

Juga, jika tidak ada yang keluar, Anda mungkin ingin memeriksa firewall Anda sebagai berikut (pastikan untuk melakukan ini sebagai root):

[root @ web01 ~] # iptables -L
Chain INPUT (kebijakan MENERIMA)
target sumber tujuan opt opt         
ACCEPT tcp - di mana saja di mana saja tcp dpt: ms-v-worlds 
ACCEPT tcp - di mana saja di mana saja tcp dpt: imaps 
MENERIMA tcp - di mana saja di mana saja tcp dpt: imap 
ACCEPT tcp - di mana saja di mana saja tcp dpt: pop3 
MENERIMA tcp - di mana saja di mana saja tcp dpt: smtp 
           tcp - di mana saja di mana saja tcp dpt: ssh state BARU baru-baru ini: SET nama: SSH sisi: sumber 
DROP tcp - di mana saja di mana saja tcp dpt: ssh state BARU baru-baru ini: UPDATE detik: 60 hit_count: 8 TTL-Nama pertandingan: SSH side: source 

Chain FORWARD (kebijakan MENERIMA)
target sumber tujuan opt opt         

Chain OUTPUT (kebijakan MENERIMA)
target sumber tujuan opt opt         

Chain RH-Firewall-1-INPUT (0 referensi)
target sumber tujuan opt opt         
[root @ xxxx ~] # 
bsisco
sumber
1
Atau, pada * nix, lihat di /etc/syslog.conf untuk melihat di mana lagi pesan-pesan log itu mungkin dikirim.
Liudvikas Bukys
saya tidak melihat entri smtp di iptables
Umair
5

Coba cari di /var/log/mail.info atau /var/log/mail.err

Rory
sumber
2

juga periksa / var / spool / mqueue untuk surat keluar cache saat ini

Jimsmithkka
sumber
2

Untuk fedora et al. journalctl _COMM = sendmail akan menampilkan pesan dari sendmail.

Saya diarahkan ke jawaban ini melalui pencarian. / var / log / mail hanya berisi file 'statistik' di Fedora. Dan semua direktori yang disebutkan lainnya tidak ada.

journalctl tidak cukup intuitif jika Anda tidak tahu parameter apa yang digunakan, ymmv. jadi saya sudah memposting solusi ini.

comfytoday
sumber
1
/var/log/maillog
Prody
sumber
-1

Anda dapat membuat file log Anda sendiri

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

lalu

[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
Jonny
sumber