ตรวจสอบการส่งอีเมลขาออกของ Postfix


11

ฉันใช้ GNU Mailman กับ Postfix เพื่อเรียกใช้รายชื่อผู้รับจดหมายและต้องการตรวจสอบการส่งมอบจดหมายขาออกนั่นคือ: สำหรับจดหมายแต่ละฉบับที่ส่งจากรายการตรวจสอบว่ามีการตอบข้อความ 250 (OK) หรือไม่ กลับมาหาฉัน

สำหรับตอนนี้ฉันกำลังทำอย่างรวดเร็วและสกปรก:

# cat /var/log/syslog | grep "smtp.*to=.*" | grep -v 250

มีวิธีที่สะอาดในการตรวจสอบผลลัพธ์ของ smtpd หรือไม่?


1
แน่นอนนี้จะต้องเป็นการใช้งานไร้ประโยชน์cat ? อย่างน้อยที่สุดคุณก็ทำได้grep "smtp.*to=.*" /var/log/syslog | grep -v 250
CVn

โดยส่วนตัวแล้วฉันค้นพบว่าสงครามครูเสดเป็นเรื่องเล็กน้อยในบริบทส่วนใหญ่และต้องการรูปแบบโมดูลาร์ที่อ่านง่ายขึ้นของ OP
jchook

คำตอบ:


8

ไม่มีวิธีตรวจสอบอีเมลที่ส่งด้วยวิธีที่สะอาด คุณสามารถ grep รายละเอียดจาก maillog ของ postfix เท่านั้น

นี่คือตัวอย่าง:

log='logfile of postfix'
grep "status=sent" $log | \
egrep -ve 'postfix/(cleanup|pickup|master|qmgr|smtpd|local|pipe)'

และหลีกเลี่ยงการบันทึกdkimเป็นต้นหากคุณต้องการนับจำนวนจดหมายจากนั้นไปป์wc -lที่ท้าย


3

เกี่ยวกับ:

multitail -eX "smtp.*to=<(.*)>.*sent.*250" './bin/received' -f /var/log/maillog

./bin/received เป็นเชลล์สคริปต์ที่รับที่อยู่อีเมลปลายทางเป็นพารามิเตอร์และทำบางสิ่งกับมัน



0

ฉันกำลังดูว่าใครส่งอีเมลผ่านเซิร์ฟเวอร์ของฉันด้วยสิ่งนี้:

tail -f /var/log/mail.log | grep 'sasl'

มันแสดงให้เห็นว่าผู้ใช้รับรองความถูกต้องคือใครกำลังส่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.