Trang chủ » Thiết kế website giá rẻ
Các lệnh hay dùng với Postfix
Giả sử bạn đang quản trị máy chủ mail MDaemon trên Windows trong công ty. Vì lý do bản quyền hay bị virus nhiều quá, máy mail bị đứng liên tục không nối lên mạng được, không gởi/nhận mail được, bạn nghe lời bạn bè giới thiệu qua dùng postfix. Thấy nó chạy đã quá nhưng vì công ty còn xài modem để gởi/nhận mail, nhiều lúc mail nằm trong queue chờ gởi đi mà không biết phải xử lý thế nào...thì xin đọc tiếp.
Tất cả các thông điệp ra/vào đều đi qua queue và chúng được quản lý bởi queue manager hay nói rõ hơn chương trình/lệnh qmgr. Có 5 loại queue trên postfix. Đó là active, bounce, corrupt, deferred, hold. Và tất cả đều nằm trong /var/spool/postfix
Người quản trị mail hay dùng 2 lệnh postsuper và postqueue để quản lý thông điệp nằm trong queue. Thông điệp gởi đi sẽ nằm lại trong deferred queue nếu bị trục trặc nhỏ, ví dụ, không thể tìm thấy host vì hiện tại mạng chưa kết nối, hay vì máy host bên kia đang tạm thời bị sự cố. Những thông điệp nào bị từ chối bởi người nhận hay bị lỗi trầm trọng do máy chủ mail chưa thiết lập đúng thì sẽ bị trả về người gởi ngay lập tức nghĩa là những thông điệp này sẽ không nằm trong queue. Thông điệp nào nằm trong queue sẽ được postfix gởi đi mỗi 17 phút (1000 giây) cho đến khi chúng đã được gởi đi thành công. Bạn có thể thay đổi thời gian postfix kiểm tra thông điệp trong queue (thay vì 1000 giây một lần) bằng cách khai báo/thay đổi giá trị của queue_run_delay trong /etc/postfix/main.cf, postfix sẽ tiếp tục cố gắng gởi đi những thông điệp trong queue trong vòng 5 ngày (5d), sau đó sẽ trả lại người gởi vì lý do gì đó mà thông điệp không gởi được. Bạn có thể thay đổi thời gian postfix giữ thông điệp trong queue bằng cách thay đổi giá trị của maximal_queue_lifetime Để xem giá trị hiện tại (5d), gõ dòng lệnh
[root@proxy kdlc]# postconf | grep maximal_queue_lifetime
maximal_queue_lifetime = 5d
Thông thường postfix sẽ gởi đi khoảng 5 thông điệp một lần. Tùy vào số thông điệp trong queue mà postfix sẽ tự tăng giá trị này lên. Giá trị ( default_destination_concurrency_limit) tối đa là 20. Bạn không nên thay đổi giá trị này vì rất có thể nó sẽ làm những máy mail bạn gởi thông điệp đến sẽ bị tắt nghẽn/chậm chạp đi vì thông điệp gởi đến nhiều quá. Tuy nhiên bạn có thể hạn chế số lượng thông điệp gởi đi ra ngoài cùng lúc bằng cách thay đổi smtp_destination_concurrency_limit hay sử dụng local_destination_concurrency_limit để hạn chế việc giao (deliver) thông điệp đến người dùng. Thông thường giá trị chuẩn của smtp_destination_concurrency_limit là 20 (tức là bằng với default_destination_concurrency_limit) còn local_destination_concurrency_limit là 2. Làm sao mình biết? Gõ postconf | grep smtp_destination_concurrency_limit và postconf | grep local_destination_concurrency_limit thì bạn sẽ thấy.
Lưu ý: domain.com phải nằm trong biến fast_flush_domains hay relay_domains
Ví dụ: khai báo fast_flush_domains = $relay_domains domain.com trong /etc/postfix/main.cf.
domain.com chỉ là một ví dụ, bạn cần thay đổi một tên thật khi sử dụng. Mỗi lần sửa đổi /etc/postfix/main.cf, bạn phải khởi động lại postfix với dòng lệnh /etc/init.d/postfix restart hay service postfix restart
Hy vọng bài viết trên sẽ giúp đỡ việc quản lý queue trong postfix được hiệu quả hơn. Mọi ý kiến, thắc mắc xin gởi đến larry at vnlinux dot org