Thư proxy đến máy chủ smtp khác với Postfix


11

Làm cách nào tôi có thể chuyển tiếp (hoặc proxy) thư đến các máy chủ smtp khác nhau tùy thuộc vào địa chỉ Đến?

Tôi đã có một máy có máy chủ SMTP (postfix) nghe trên cổng 25. Tôi muốn sử dụng Lamson ( http://lamsonproject.org/ ) để xử lý một số thư đến và một số thư tôi muốn xử lý hậu tố.

Ý tưởng của tôi là thiết lập Lamson để nghe trên một cổng khác, giả sử localhost: 10025. Sau đó tôi thiết lập postfix để bắt tất cả thư bằng cách nghe trên cổng 25.

Làm cách nào để định cấu hình Postfix thành proxy nhất định cho Lamson vào năm 10025 và tự xử lý tất cả các thư khác?

Câu trả lời:


17

Postfix cực kỳ linh hoạt (và do đó, phức tạp) trong cấu hình của nó, vì vậy có nhiều cách khác nhau để đạt được điều này. Cách đơn giản nhất có lẽ là sử dụng transport(5)bảng.

Đầu tiên, cho phép sử dụng bảng vận chuyển trong postfix:

/etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport

Bạn cũng phải đảm bảo rằng Postfix chấp nhận thư cho các địa chỉ sẽ được Lamson xử lý. Hãy xem permit_auth_destinationcác quy tắc Postfix sẽ áp dụng để xác định địa chỉ người nhận hợp lệ. Đối với ví dụ sau, giả sử "example.com" là một miền không được biết đến với Postfix, có lẽ đơn giản nhất là thêm nó làm miền chuyển tiếp:

/etc/postfix/main.cf:
    relay_domains = example.com

Sau đó, tạo một bảng thích hợp. Ví dụ: để chuyển hướng tất cả thư cho tên miền "example.com" cũng như thư cho "user@mydomain.org" tới Lamson địa phương của bạn đang nghe tại cổng 10025:

/etc/postfix/transport:
    example.com          smtp:127.0.0.1:10025
    user@mydomain.org    smtp:127.0.0.1:10025

Sau đó (và sau đó một lần sau mỗi lần cập nhật tệp bảng vận chuyển) đừng quên chạy:

$ postmap /etc/postfix/transport

Điều này sẽ giúp bạn đi. Hãy chắc chắn đọc transport(5)trang người đàn ông, sẽ cho bạn thêm ý tưởng về cách sử dụng thiết bị mạnh mẽ này.


Xin chào, cảm ơn vì tiền boa. Tôi vẫn gặp vấn đề với việc chuyển thư sau khi làm theo hướng dẫn của bạn. Tôi đang nhận được NOITEUE: từ chối: RCPT từ {my-mail-rơle} Địa chỉ người nhận bị từ chối: Người dùng không xác định trong bảng người nhận cục bộ. Có ý kiến ​​gì không?
Mattias

À đúng rồi, bạn cũng phải đảm bảo rằng Postfix chấp nhận thư được chuyển tiếp tới example.com (vì Postfix hiện đang hoạt động như một chuyển tiếp cho Lamson). Nếu Postfix của bạn chủ yếu phục vụ một tên miền khác, cách dễ nhất để đạt được điều này là thêm "miền Lamson" vào relay_domains. Tôi cập nhật để trả lời để kết hợp này.
bá tước

1
Cảm ơn, sau khi làm theo các bước của bạn, tôi vẫn gặp một số vấn đề khi nhận postfix để nhận ra localhost là máy chủ hợp lệ. Tôi đã chạy lệnh postconf -e 'smtp_host_lookup = dns, bản địa' và điều đó đã giải quyết vấn đề của tôi, postfix hiện đang chuyển tiếp thư tôi muốn đến Lamson.
Mattias

1
Thật tốt khi nghe rằng nó hoạt động. Thay vì thay đổi smtp_host_lookup, bạn cũng có thể sử dụng 127.0.0.1thay vì localhost. Tôi đã cập nhật câu trả lời để phù hợp với sự cải thiện đó.
bá tướ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.