Làm cách nào để chuyển hướng tất cả email gửi đi từ postfix đến một địa chỉ để kiểm tra


13

Tôi đang thiết lập một máy chủ thử nghiệm cho một ứng dụng dựa trên web để gửi một số thông báo email.

Đôi khi việc kiểm tra được thực hiện với dữ liệu khách hàng thực sự và vì lý do đó tôi cần đảm bảo rằng máy chủ không thể gửi email đến khách hàng thực sự của chúng tôi trong khi chúng tôi đang thử nghiệm.

Những gì tôi muốn là cấu hình postfix để nó nhận bất kỳ email gửi đi nào và chuyển hướng nó đến một địa chỉ email duy nhất, thay vì gửi đến đích thực sự.

Tôi đang chạy máy chủ Ubuntu 9.10.

Cảm ơn bạn trước

Câu trả lời:


19

Thiết lập người dùng cục bộ để nhận tất cả thư bị bẫy:

adduser mailtrap

Bạn cần thêm vào main.cf:

transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap

Sau đó tạo / etc / postfix / Transport với cái này trong đó:

localhost :
your.hostname.example.com:
* local:mailtrap

Lưu lại rồi chạy: postmap /etc/postfix/transportcuối cùng khởi động lại postfixinvoke-rc.d postfix restart

Tất cả email địa phương sẽ được gửi bình thường và email bên ngoài sẽ được gửi đến mailtraptài khoản địa phương .


Đây chính xác là những gì tôi đang tìm kiếm ... cảm ơn bạn!
thatjuan

3
Làm việc cho tôi nhưng chỉ sau khi tôi thêm luser_relay = xxxxxvào main.cf. Nếu không có điều này, các email sẽ bị trả lại.
Alex R

1
Khi sử dụng Ubuntu, bạn cũng có thể khởi động lại Postfix bằng sudo service postfix restart. Vị trí của tệp main.cf của bạn được đề cập ở trên là /etc/postfix/main.cf. Khi lần đầu tiên cài đặt và thiết lập Postfix, bạn có thể sử dụng Local onlytùy chọn cài đặt.
mtnorthrop

trên MAC, bạn nên chạy postmap hash:/etc/postfix/transportsudo postfix stop,sudo postfix start
Bang Dao

điều đó thật tuyệt. Có ai biết làm thế nào để loại bỏ trùng lặp khi một tin nhắn có nhiều người nhận không?
Graywh

10

Tốt hơn là tạo một tệp bí danh ảo:

Trong /etc/postfix/main.cf:

virtual_alias_maps = pcre:/etc/postfix/virtual

Trong / etc / postfix / ảo:

/.*@.*/ root

Bạn có thể thay thế rootbằng bất kỳ người dùng nào bạn muốn nhận tất cả e-mail gửi đi. Mẫu này có thể được điều chỉnh nếu bạn muốn thư cục bộ được gửi bình thường (không chuyển hướng):

/.*@(?!hostname\.localdomain$).*/ root

Ý tưởng ban đầu được tìm thấy ở đây: Máy chủ phát triển Postfix - chặn tất cả thư đi


2
Lưu ý bạn có thể cần phải làm sudo apt-get install postfix-pcretrước, để tránh những bất ngờ.
mirabilos

làm việc cho tôi rất tốt!
michael-mammut

lỗi "Người dùng không xác định trong bảng bí danh ảo"
Alex R

5

Postfix cung cấp một cái gì đó gọi là smtp-chìm. Theo mặc định, nó đánh dấu tất cả các email mà nó nhận được. Các phiên bản mới hơn cũng có thể được cấu hình để chụp email trong các tệp.

Điều này về mặt kỹ thuật không sử dụng postfix (nhưng một tiện ích được cung cấp bởi postfix.) Nó cũng không chuyển hướng kỹ thuật mỗi email đến một địa chỉ email duy nhất. Nhưng nó nắm bắt tất cả lưu lượng truy cập trên cổng 25 và chuyển tệp đó sang một tệp có thể được phân tích cú pháp.


Làm thế nào để gọi smtp-chìm? Một trang mà tôi tìm thấy trực tuyến làm cho nó trông giống như một chương trình bình thường, nhưng nếu nó đi kèm với hậu tố thì nó không được cài đặt trên hệ thống của tôi (OSX 10.6). Làm thế nào tôi có thể chạy dịch vụ này?
Chris Bloom

Có một trang dành cho smtp-chìm. Nhưng một số tham số cũng được mô tả ở đây: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq
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.