2009-05-24 34 views
5

Tôi đã googling suốt đêm cho postfix của howto, nhưng tôi vẫn không thể tìm ra làm thế nào để quản lý để nhận email trên linux-server (cụ thể hơn - Ubuntu).Làm cách nào để tôi không nhận được thư trong linux một cách dễ dàng và nạp nó vào Rails?

Tất cả những gì tôi cần là một hộp thư bắt tất cả nhận tất cả email và cung cấp chúng cho tập lệnh ruby ​​(sau đó chuyển nó cho Rails, tất nhiên). Tôi đã có thể thiết lập postfix để gửi email một thời gian trước và tôi phải nói - nó không phải là đau đớn ở tất cả, tôi đã gần như không có gì ngoài việc thực sự cài đặt nó.

Bạn có thể đề xuất cách làm tốt hay công thức nấu ăn hoặc máy chủ thư dễ cài đặt thay thế có thể giải quyết được sự cố không?

Trả lời

5

Có hai phần của câu trả lời này, câu trả lời của Norman Ramsey bao gồm phần thứ hai: phân phát email cho một tập lệnh được xử lý. Phần đầu tiên là cấu hình Postfix để nhận email. Vì bạn cần một nhận tất cả bạn có thể đặt một cái gì đó như thế này trong/etc/postfix/aliases

@yourdomain.com localuser 

Và 'localuser' là tên của tài khoản trên hệ thống của bạn trong đó có một

/home/localuser/.forward

chứa lệnh (xem phản hồi của Norman). Hoặc, bạn có thể giữ cho nó tất cả trong Postfix

/etc/postfix/aliases:

@ yourdomain.com |/path/to/your/script

này sẽ gửi tất cả các email được gửi tới @ yourdomain.com và gửi đến tập lệnh của bạn để xử lý. Hãy nhớ rằng kịch bản sẽ được thực hiện như là người dùng postfix, vì vậy bạn sẽ cần phải đảm bảo môi trường của bạn được thiết lập phù hợp (ví dụ bạn không dựa vào một $ PATH cụ thể mà tài khoản người dùng bình thường của bạn có). Người dùng postfix có thể có môi trường rất cơ bản (ví dụ: có thể thậm chí không có/usr/local/bin trong $ PATH)

+1

Đừng quên chạy 'newaliases' (như root hoặc thông qua sudo) sau khi bạn chỉnh sửa các tập tin bí danh - điều này sẽ tái tạo (Berkeley?) DB tập tin đó là những gì Postfix sử dụng cho tra cứu nhanh. –

+0

Điều này vẫn hoạt động? Nó dường như không hoạt động trên máy chủ Ubuntu 16.04 của tôi. – amorimluc

6

Chọn tài khoản bạn muốn nhận thư được chuyển tiếp tới tập lệnh Ruby của bạn. Chỉnh sửa các tập tin .forward trong thư mục nhà của kịch bản để đọc

"|/path/to/my/ruby/script" 

Khi postfix cung cấp mail cho tài khoản, nó sẽ chạy kịch bản với các điều khoản của người sử dụng chỉ định và sẽ cung cấp qua đường bưu điện trên đầu vào tiêu chuẩn. Tùy thuộc vào những gì bạn làm với thư bạn có thể muốn xác thực nó theo một cách nào đó để kịch bản biết nó thực sự là của bạn. (Ví dụ, tiêu đề với muối và SHA1 hash của muối + mật khẩu.)

Dưới đây là một ví dụ thực tế cuộc sống từ hệ thống mail lông của riêng tôi:

"|/home/nr/bin/filtermail /home/nr/machine/x86-bsd/bin/luapipe /home/nr/machine/x86-bsd/bin/safe-slocal 2>>/home/nr/slocal.log 1>&2" 

này đi vào một kịch bản shell mà sau đó gọi cả Lua và các chương trình C để vứt bỏ thư đúng cách.

+0

câu trả lời của bạn là rất ngắn) nào người dùng cần phải có này ".forward" tập tin? Tính năng này có hoạt động cho postfix không? – snitko

+0

Cho dù người dùng nhận thư, và có nó hoạt động cho postfix. –

Các vấn đề liên quan