อีเมลและการทำงานร่วมกัน

How to delete messages from mail queue

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 {} \;- ใช้คำสั่ง 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 รับติดตั้ง Zimbra Mail Server

EOF.← กลับไปอ่านบทความอื่น