it-swarm-vi.tech

postfix - làm thế nào để bạn chuyển hướng tất cả các email đến một người dùng, ví dụ *@example.com → [email protected]

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?

27
Rory

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ệ

19
womble

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ư.

17
Jeremy Bouse

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.

8
patryk

Để 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.

6
bshea

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.

3
Vasile Goian

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ư.

0
user542704