Exim là một SMTP Server tốt, tuy nhiên đôi lúc bạn cũng phải thao tác để quản lý hàng đợi (Queue) trong trường hợp các user gởi quá nhiều email, hoặc bị Spam làm tắc nghẽn. Thời điểm này, nếu bạn sử dụng giao diện để xem, xóa email trong hàng đợi thì rất dễ làm die server hay còn gọi là quá sức :D. Ngược lại, khi thao tác bằng lệnh sẽ nhanh chóng và không gây tốn nhiều tài nguyên. Sau đây là một số lệnh Exim thông dụng.
1. Liệt kê danh sách tất cả các email có trong queue
exim -bp
2. Đếm Số lượng các mail đang trong queue
exim -bpc
3. Đếm Số lượng các mail đang ở Tình trạng Frozen (bị nhận dạng là spam)
exim -bpr | grep frozen | wc -l
4. Xem thông tin tổng quát về các email trong queue
exim -bp | exiqsumm
5. Kiểm tra hành động hiện thời của exim
exiwhat
6. Force để run queue
exim -q -v
7. Force run queue để gửi các email trong local
exim -ql -v
8. Xem header của 1 mail nào đó
exim -Mvh <id của mail>
9. Xem nội dung của 1 mail nào đó
exim -Mvb <id của mail>
10. Xóa tất cả các mail đang ở tình trạng frozen
exiqgrep -z -i | xargs exim -Mrm
11. Xóa tất cả các mail đã nằm trong queue vượt trên 1 khoảng thời gian được định
exiqgrep -o <thời gian> -i | xargs exim -Mrm
trong đó <thời gian> là số giây tối đa mà các email đã chờ trong queue, nếu email nào đã chờ quá <thời gian> sẽ bị xóa đi.
Ví dụ lệnh SSH sau đây sẽ xóa tất cả email đã chờ quá 1 ngày:
exiqgrep -o 86400 -i | xargs exim -Mrm
12. Xóa tất cả email được gửi đi từ 1 domain hay 1 account nào đó
exiqgrep -f <người gửi> -i | xargs exim -Mrm
trong đó <người gửi> là 1 chuỗi (string) sẽ được so sánh với thông tin về người gửi ($header_from) trong header của email, nếu phù hợp sẽ bị xóa đi. Ví dụ lệnh SSH sau sẽ xóa đi tất cả email đang chờ trong queue để gửi đi của account sales@abc.com
exiqgrep -f sales@abc.com -i | xargs exim -Mrm
13. Xóa tất cả email gửi đến 1 domain hay 1 account nào đó
exiqgrep -r <người nhận> -i | xargs exim -Mrm
trong đó <người nhận> là 1 chuỗi (string) sẽ được so sánh với thông tin về người nhận( $header_to) trong header của email, nếu phù hợp sẽ bị xóa đi. Ví dụ lệnh SSH sau sẽ xóa đi tất cả email đang chờ được gửi từ các email có chữ “info”
exiqgrep -f info -i | xargs exim -Mrm
Xóa toàn bộ mail queue:
find /var/spool/exim/input -type f -exec rm -rf {} \;
Chào bạn !
Cho mình hỏi nếu mình muốn thiết lập tự động sau 1 khoảng thời gian nó sẽ tự động xóa thì làm thế nào bạn.