delete-mail-queuesวิธีการลบ mail ออกจาก queue ของ MTA ต่างๆ โดยสมมติว่ามี mail อยู่ใน queue ดังนี้

-Queue ID- --Size-- ----Arrival Time---- ---Sender/Recipient-------
9DCE512DB8140 113016 Fri Sep 9 16:49:55 [email protected]
(temporary failure)
[email protected]

A94D912DB80D1 46747 Fri Sep 9 13:48:28 [email protected]
(temporary failure)
[email protected]

D1D0612DB8118 113626 Fri Sep 9 16:47:22 [email protected]
(temporary failure)
[email protected]

วิธีการลบ mail queue ของ Sendmail

    1. ลบแบบ manual คือให้ไปลบไฟล์ใน /var/spool/mail/ และ /var/mqueue/ ตัวอย่าง
      [root@Ezylinux ~]# rm -f /var/spool/mail/*.*
      [root@Ezylinux ~]# rm -f /var/mqueue/*.*

      หรืออาจใช้คำสั่ง find เข้ามาช่วยค้นหา email ที่ต้องการลบได้ ตัวอย่างเช่น ต้องการลบ email ที่มีสถานะ “temporary failure” จาก /var/spool/mqueue

      [root@Ezylinux ~]# find /var/spool/mqueue -type f -exec grep "temporary failure" {} \; -exec rm -rf {} \;

    2. ใช้คำสั่ง sendmail จาก user root
      ลบ mail queue ทั้งหมด
      [root@Ezylinux ~]# sendmail -v -q

      แบบระบุ domain ผู้ส่ง

      [root@Ezylinux ~]# sendmail -qS -v ezylinux.com

      แบบระบุ domain ผู้รับ

      [root@Ezylinux ~]# sendmail -qR -v ezylinux.com

    แถมคำสั่งดู mail ใน queue ของ Sendmail

    [root@Ezylinux ~]# mailq

    วิธีการลบ mail queue ของ Postfix

    สำหรับ Postfix จะต้องใช้คำสั่ง postsuper ในการลบจาก mail queue เท่านั้น

    1. ลบโดยระบุ queue id ใช้คำสั่ง postsuper ตามด้วย QueueID ตามตัวอย่างด้านล่าง
      [root@Ezylinux ~]# postsuper -d 9DCE512DB8140
    2. ลบ mail queue แบบระบุ domain
      ระบุ email ผู้ส่ง ตัวอย่างเช่น ต้องการลบ [email protected] (ผู้ส่ง) จาก mail queue
      [root@Ezylinux ~]# postqueue -p | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($7 == "[email protected]") print $1 } ' | tr -d '*!' | postsuper -d -

      ระบุ email ผู้รับ ตัวอย่างเช่น ต้องการลบ [email protected] (ผู้รับ) จาก mail queue

      [root@Ezylinux ~]# postqueue -p | grep -v ‘^ *(‘ | awk ‘BEGIN { RS = “” } { if ($8 == “[email protected]” && $9 == “”) print $1 } ‘ | tr -d ‘*!’ | postsuper -d –

    ** $7=sender, $8=recipient1, $9=recipient2

    แถมคำสั่งดู mail ใน queue ของ postfix

    [root@Ezylinux ~]# postqueue -p

    วิธีการลบ mail queue ของ Exim

    1. ลบโดยระบุ queue id
      [root@Ezylinux ~]# exim -Mrm D1D0612DB8118
    2. ลบ mail queue ทั้งหมด
      [root@Ezylinux ~]# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | sh

      หรือ
      [root@Ezylinux ~]# exim -bp | exiqgrep -i | xargs exim -Mrm

    3. ลบ mail queue ที่มีอายุมากว่า 300 วินาที หรือ 5 นาที
      [root@Ezylinux ~]# exiqgrep -o 300 -i | xargs exim -Mrm

    แถมคำสั่งดู mail ใน queue ของ Exim

    [root@Ezylinux ~]# exim -bp

    [stextbox id=”info” caption=”บริการของเราเกี่ยวกับระบบ Mail Server:”]รับติดตั้ง Zimbra Mail Server[/stextbox]