How to delete messages from mail queue
วิธีการลบ mail ออกจาก queue ของ MTA ต่างๆ โดยสมมติว่ามี mail อยู่ใน queue ดังนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
-Queue ID- --Size-- ----Arrival Time---- ---Sender/Recipient------- 9DCE512DB8140 113016 Fri Sep 9 16:49:55 user1@ezylinux.com (temporary failure) user2@ezylinux.com A94D912DB80D1 46747 Fri Sep 9 13:48:28 tum@ezylinux.com (temporary failure) user3@ezylinux.com D1D0612DB8118 113626 Fri Sep 9 16:47:22 alice@ezylinux.com (temporary failure) inw@ezylinux.com |
วิธีการลบ mail queue ของ Sendmail
- ลบแบบ manual คือให้ไปลบไฟล์ใน /var/spool/mail/ และ /var/mqueue/ ตัวอย่าง
1234[root@Ezylinux ~]# rm -f /var/spool/mail/*.*[root@Ezylinux ~]# rm -f /var/mqueue/*.*หรืออาจใช้คำสั่ง find เข้ามาช่วยค้นหา email ที่ต้องการลบได้ ตัวอย่างเช่น ต้องการลบ email ที่มีสถานะ “temporary failure” จาก /var/spool/mqueue
123[root@Ezylinux ~]# find /var/spool/mqueue -type f -exec grep "temporary failure" {} \; -exec rm -rf {} \; - ใช้คำสั่ง sendmail จาก user root
ลบ mail queue ทั้งหมด
123[root@Ezylinux ~]# sendmail -v -qแบบระบุ domain ผู้ส่ง
123[root@Ezylinux ~]# sendmail -qS -v ezylinux.comแบบระบุ domain ผู้รับ
123[root@Ezylinux ~]# sendmail -qR -v ezylinux.com - ลบโดยระบุ queue id ใช้คำสั่ง postsuper ตามด้วย QueueID ตามตัวอย่างด้านล่าง
123[root@Ezylinux ~]# postsuper -d 9DCE512DB8140 - ลบ mail queue แบบระบุ domain
ระบุ email ผู้ส่ง ตัวอย่างเช่น ต้องการลบ user1@ezylinux.com (ผู้ส่ง) จาก mail queue
123[root@Ezylinux ~]# postqueue -p | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($7 == "user1@ezylinux.com") print $1 } ' | tr -d '*!' | postsuper -d -ระบุ email ผู้รับ ตัวอย่างเช่น ต้องการลบ user2@ezylinux.com (ผู้รับ) จาก mail queue
[root@Ezylinux ~]# postqueue -p | grep -v ‘^ *(‘ | awk ‘BEGIN { RS = “” } { if ($8 == “user2@ezylinux.com” && $9 == “”) print $1 } ‘ | tr -d ‘*!’ | postsuper -d –
- ลบโดยระบุ queue id
123[root@Ezylinux ~]# exim -Mrm D1D0612DB8118 - ลบ mail queue ทั้งหมด
123[root@Ezylinux ~]# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | shหรือ
123[root@Ezylinux ~]# exim -bp | exiqgrep -i | xargs exim -Mrm - ลบ mail queue ที่มีอายุมากว่า 300 วินาที หรือ 5 นาที
123[root@Ezylinux ~]# exiqgrep -o 300 -i | xargs exim -Mrm
แถมคำสั่งดู mail ใน queue ของ Sendmail
1 2 3 |
[root@Ezylinux ~]# mailq |
วิธีการลบ mail queue ของ Postfix
สำหรับ Postfix จะต้องใช้คำสั่ง postsuper ในการลบจาก mail queue เท่านั้น
** $7=sender, $8=recipient1, $9=recipient2
แถมคำสั่งดู mail ใน queue ของ postfix
1 2 3 |
[root@Ezylinux ~]# postqueue -p |
วิธีการลบ mail queue ของ Exim
แถมคำสั่งดู mail ใน queue ของ Exim
1 2 3 |
[root@Ezylinux ~]# exim -bp |
บริการของเราเกี่ยวกับระบบ Mail Server:
