Tôi đang sử dụng postfix cho email của mình. Tôi biết tôi có thể sử dụng lệnh/etc/aliases và newaliases để chuyển hướng một số email nhất định, ví dụ: tôi có thể chuyển hướng [email protected] đến [email protected] bằng cách đặt root: user
trong/etc/bí danh của tôi và sau đó chạy newaliases
. Tuy nhiên, tôi muốn làm tương đương với *: user
, để tất cả email đến example.com sẽ được gửi đến [email protected]
Làm thế nào để tôi làm điều này?
luser_relay = [email protected]
Trong main.cf
Là những gì bạn muốn.
Để vô hiệu hóa người dùng kiểm tra và chấp nhận tất cả thư, bạn cần thêm tùy chọn local_recipient_maps =
. Tài liệ
Những gì bạn đang tìm kiếm là một bảng bí danh ảo và có thể được thực hiện bằng cách sử dụng ...
Trước tiên, bạn cần chỉnh sửa hoặc tạo nếu nó chưa tồn tại, tệp / etc/postfix/virtual.
example.com whatever
@example.com [email protected]
Sau khi đã được lưu, bạn sẽ cần chạy postmap /etc/postfix/virtual
để tạo chỉ mục / etc/postfix/virtual.db Postfix sẽ đọc.
Sau đó, bạn sẽ cần chỉnh sửa / etc/postfix/main.cf và chắc chắn rằng bạn không có dòng nào sau đây:
virtual_alias_maps = hash:/etc/postfix/virtual
Điều này thực sự sẽ cho postfix biết về bảng bí danh ảo và sử dụng nó.
Vấn đề với việc sử dụng luser_relay
tùy chọn như những người khác đã đề cập là điều này được coi là người sử dụng các biện pháp cuối cùng cho các địa chỉ không xác định của đại lý giao hàng địa phương. Nếu postfix chỉ xử lý thư cho một tên miền thì điều này có thể được sử dụng cho việc này nhưng nó có thể che giấu các lỗi cấu hình khác và có thể sẽ gây ra kết quả không mong muốn nếu có nhiều hơn một tên miền được xử lý.
Một lưu ý mà tôi cảm thấy bắt buộc phải đề cập là bằng cách tạo bí danh ký tự đại diện cho bản chất này, bạn đang mở hệ thống thư của mình để chấp nhận thư cho các địa chỉ không tồn tại và có nguy cơ bị hộp thư chứa đầy thư rác vì không tồn tại hộp thư.
Nó thực sự khá đơn giản. Tất cả những gì bạn cần làm là đặt một cái gì đó như thế này vào tệp main.cf
Của bạn:
virtual_alias_maps = regexp:/etc/postfix/virtual_alias
Phần regexp
thực hiện thủ thuật. Ngoài ra, trong /etc/postfix/virtual_alias
Bạn đặt một cái gì đó như thế này:
/^test/ [email protected]
Trong ví dụ này, bạn sẽ nhận được tất cả thư có đích bắt đầu bằng 'kiểm tra'. Đừng quên postmap/etc/postfix/virtual_alias và tải lại postfix.
Để kết hợp một câu trả lời/nhận xét ở trên phù hợp nhất với tôi (tôi có một tên miền chính):
[.__.] Thêm phần sau vào /etc/postfix/main.cf
:
luser_relay = [email protected] (or local system user)
local_recipient_maps =
(local_recipient_maps =
Không có giá trị được đặt)
Tôi sử dụng tài khoản linux của người dùng cục bộ và cũng thêm cùng một người dùng vào/etc/bí danh để người dùng nhận được tất cả thư đến root, postmaster, v.v.
Bạn cũng có thể kết hợp cùng một địa chỉ này trong virtual_alias_maps
Và trỏ bất kỳ tên miền ảo nào vào cùng một tài khoản chính này.
Vui lòng tham khảo luser_relay để biết thêm.
Nếu bạn muốn sử dụng địa chỉ tất cả cho tên miền mydomain, bạn có thể sử dụng /etc/aliases
kết hợp với biểu thức chính quy như sau:
Trong /etc/postfix/main.cf
thêm vào
[.__.] alias_maps = hash:/etc/aliases, regexp:/etc/postfix/catch-all-local.regexp
Trong /etc/postfix/catch-all-local.regexp
thêm vào
[.__.] !/^owner-/ your-catch-all-user
Cái này cần phải dùng mẹo. Nó hoạt động với tôi và hoạt động với virtual_alias_maps được đặt song song.
Có một loại bảng tra cứu static trong Postfix, có thể được sử dụng cho mục đích chính xác này:
alias_database = static:[email protected]
alias_maps = static:[email protected]
Nếu [email protected] không phải là cục bộ cho hệ thống này, có lẽ bạn cũng muốn loại bỏ tất cả các thông báo thoát bằng cách thay thế các dòng kết thúc bằng bounce
bằng discard
in master.cf
để tránh các vòng lặp thư.