Postfix - làm thế nào để thử lại việc gửi thư trong hàng đợi?


95

Tôi có một máy chủ mail dự phòng trong trường hợp thất bại trên máy chủ chính. Trong trường hợp thất bại, thư đến trên máy chủ dự phòng và ở đó cho đến khi máy chủ chính hoạt động trở lại.

Nếu tôi chờ đợi một thời gian, việc giao hàng sẽ được thực hiện tự động ngay khi máy chủ chính hoạt động trở lại nhưng có thể lâu. Vậy làm thế nào để buộc một lần thử gửi lại tất cả các thư?

Ví dụ: postqueue -p: cho tôi một danh sách các thư

Sau đó, tôi đã thử postqueue -f (từ trang man: Flush the queue: cố gắng gửi tất cả thư được xếp hàng.). Nó chắc chắn tuôn ra hàng đợi nhưng thư không được gửi ...


dường như -f đang
lộn xộn

1
không có postqueue -q. Có sendmail -qhỗ trợ cú pháp sendmail để postfix hoàn toàn có thể thay thế sendmail, nhưng đó là từ đồng nghĩa. Các chữ cái khác nhau là jsut vì postfix đã chọn các chữ cái khác với sendmail đã làm.
Julian H.

Xin lỗi lần nữa, bình luận trong cùng một ngày :) vì vậy cả hai đều sai.
erm3nda

Câu trả lời:


113

Theo postqueue (1) bạn chỉ cần chạy postqueue -fđể xóa hàng đợi thư của mình. Nếu các thư không được gửi sau khi xóa hàng đợi nhưng thay vào đó đang được yêu cầu, bạn có thể muốn kiểm tra nhật ký thư của mình để tìm lỗi.

Xem qua postuper (1) cũng có thể hữu ích. Có lẽ các tin nhắn đang bị giữ và cần phải được phát hành đầu tiên.


36

postqueue -fnên làm việc. Nếu không, nó có một lý do tốt cho việc đó. Kiểm tra các bản ghi. Ngoài ra pfqueue là một lệnh rất hữu ích để kiểm tra spool mail.


16

sendmail -q thử lại giao tất cả các thư trong hàng đợi ngay lập tức.


Đây không giống như chạy postqueue -f?
Dalibor Filus

2
@ Không có nó. Từ các tài liệu : -q Cố gắng gửi tất cả thư xếp hàng. Điều này được thực hiện bằng cách thực hiện lệnh postqueue (1).
the-wợi

Tôi đã không kiểm tra điều đó, nhưng dường như -f đang lộn xộn và -q đang xếp hàng. Một người cố gắng gửi sau đó người kia chỉ cần dọn dẹp hàng đợi. Nó tốt hơn để thử cung cấp tôi đoán.
erm3nda

1
@ erm3nda Bạn ít nhất nên kiểm tra các trang nam trước. Từ postqueuetrang man: "-f Flush queue: cố gắng gửi tất cả thư được xếp hàng. Tùy chọn này thực hiện lệnh" sendmail -q "truyền thống, bằng cách liên hệ với daemon Postfix qmgr (8)." => chúng là từ đồng nghĩa và làm chính xác như nhau. "
Julian H.

@JohannesH. Xin lỗi ... xin lỗi, bạn nói đúng về việc tôi nên đọc nó. Cảm ơn bạn đã sửa chữa.
erm3nda

4

postqueue -s domain.tldsẽ làm cho máy chuyển tiếp dự phòng tuôn ra tất cả các email cho trang web của bạn. Thiết lập mặc định cho postfix cho phép xóa từng trang web cho tất cả các tên miền trong relay_domains. postqueue -fcũng sẽ làm điều này, nhưng cũng sẽ đẩy ra thư cho các trang web bên ngoài, tức là nó làm nhiều hơn bạn cần.

Làm thế nào để bạn xác định rằng thư chưa được gửi? Họ vẫn còn trên máy chủ dự phòng hay họ đã được gửi đến máy chủ chính và sau đó bị lạc?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.