Giới thiệu về Mail Exim và quản trị exim mailqueue bằng command trên Linux

Tác giả: 04/08/2022

Giới thiệu về Mail Exim

  • Exim là một tác nhân truyền thư (MTA) dành cho các máy chủ đang chạy hệ điều hành Unix hoặc Unix giống như vậy. Nó được thiết kế dựa trên giả định rằng nó sẽ được chạy trên các máy chủ được kết nối vĩnh viễn với Internet. Tuy nhiên, nó có thể được sử dụng trên các máy chủ được kết nối không liên tục với các điều chỉnh cấu hình phù hợp.
  • Tệp cấu hình hiện tồn tại cho các hệ điều hành sau: AIX, BSD / OS (hay còn gọi là BSDI), Darwin (Mac OS X), DGUX, Dragonfly, FreeBSD, GNU / Hurd, GNU / Linux, HI-OSF (Hitachi), HIUX, HP-UX, IRIX, MIPS RISCOS, NetBSD, OpenBSD, OpenUNIX, QNX, SCO, SCO SVR4.2 (hay còn gọi là UNIX-SV), Solaris (còn gọi là SunOS5), SunOS4, Tru64-Unix (trước đây là Digital UNIX, trước đây là DECOSF1), Ultrix và UnixWare. Một số hệ điều hành này không còn hiện hành nữa và không thể dễ dàng kiểm tra được, vì vậy các tệp cấu hình có thể không còn hoạt động trong thực tế.
  • Ngoài ra còn có các tệp cấu hình để biên dịch Exim trong môi trường Cygwin có thể được cài đặt trên các hệ thống chạy Windows. Tuy nhiên, tài liệu này không chứa bất kỳ thông tin nào về việc chạy Exim trong môi trường Cygwin.

Tại sao nên sử dụng Mail Exim

  • Exim hoàn toàn miễn phí
  • Cơ bản là giống Sendmail nhưng tính năng Exin mang lại nhiều hơn Sendmail.
  • Exim rất linh hoạt trong việc định tuyến email và có rất nhiều công cụ kiểm tra email gửi đến, có thể thay thế cho Sendmail mặc dù cấu hình khác Sendmail

Các câu lệnh thường dùng để quản lý mail queue

  • Liệt kê danh sách tất cả các email có trong queue:

    exim -bp

  • Đếm Số lượng các mail đang trong queue

    exim -bpc

  • Đế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

  • Xem thông tin tổng quát về các email trong queue

    exim -bp | exiqsumm

  • Kiểm tra hành động hiện thời của exim

    exiwhat

  • Force để run queue

    exim -q -v

  • Force run queue để gửi các email trong local

    exim -ql -v

  • Xem header của 1 mail nào đó

    exim -Mvh <id của mail>

  • Xem nội dung của 1 mail nào đó

    exim -Mvb <id của mail>

  • Xóa tất cả các mail đang ở tình trạng frozen

    exiqgrep -z -i | xargs exim -Mrm

  • 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

  • Xóa tất cả email được gửi đi từ 1 domain hay 1 account nào đó

    exiqgrep -r <người nhận> -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

  • 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 {} \;

 

Kết luận

Exim rất đáng để sử dụng, phù hợp với DirectAdmin cũng như cPanel.

Trả lời