2011-07-05 38 views
9

Tôi đang phát triển trang web mà tôi muốn bảo vệ người mua bằng cách ẩn danh địa chỉ email của họ. Tương tự với hệ thống của craigslist, khi người bán cần liên hệ với người mua, họ sẽ có thể gửi email đến một địa chỉ ẩn danh như [email protected], sau đó sẽ được chuyển đến địa chỉ email của người dùng.Anonymization Email Tương tự như Craigslist trong C#

Kế hoạch của tôi ngay bây giờ là:

  1. Thiết lập một xô (catch-all) inbox
  2. Tạo một khóa ngẫu nhiên cho mỗi người mua sẽ được cụ thể người sử dụng ('1425415125' ở trên) phần của địa chỉ email
  3. Theo dõi hộp thư đến của thùng và phân tích cú pháp phần cụ thể của người dùng này. Một khi tôi biết người dùng, email có thể được chuyển tiếp đến địa chỉ chính xác

Câu hỏi của tôi là như sau:

  1. Bạn có thấy bất kỳ vấn đề với giải pháp trên
  2. Có bất kỳ mã nguồn mở các giải pháp cho vấn đề hiện tại
  3. Có bất kỳ gotchas nào mà bạn nên biết khi phát triển một hệ thống như vậy không?

Cảm ơn trước

JP

+0

Trong khi cả hai câu trả lời đều sâu sắc, tôi bắt đầu một tiền thưởng để xem thông tin bổ sung - đặc biệt là liên quan đến các giải pháp cụ thể - Tôi có thể tìm thấy –

+2

Mặc dù nó không mang lại cho tôi bất kỳ khoản tiền thưởng nào. đã giải quyết] (http://stackoverflow.com/questions/926345/pipe-incoming-email-to-a-script-on-windows-iis-smtp) tại đây trên SO. – Sumo

Trả lời

6

Tôi đã làm điều gì đó có liên quan, mặc dù không hoàn toàn giống nhau. Tôi thiết lập một bắt tất cả các hộp thư đến trên máy chủ pop3 hiện tại của tôi (có thể bạn đã có một tôi đã đoán). Sau đó tôi đã sử dụng OpenPop.NET để đọc tất cả tin nhắn mới trên bộ hẹn giờ (cứ 30 giây một lần). Trong trường hợp của tôi, tôi dừng lại ở việc xử lý messagse nhưng thật dễ dàng để tạo một thư mới đến địa chỉ thích hợp và sao chép nội dung, sau đó gửi thư mới ra trên máy chủ SMTP của bạn.

Một vấn đề tôi thấy với thiết lập của bạn và có thể đó chỉ là một sự hiểu lầm về phía tôi, là khi bạn đang bảo vệ địa chỉ email ban đầu của người dùng, họ sẽ tiếp tục truy cập được tại [email protected] về cơ bản mãi mãi. Nếu tôi hiểu cách thức hoạt động của craigslist, mỗi bài đăng có một địa chỉ email khác và một khi bài đăng đã bị xóa/xóa (hoặc ngay sau đó) địa chỉ email ngừng hoạt động. Điều này làm cho nó để mọi người có thể không chỉ giữ bugging bạn trên địa chỉ email đó. Giải pháp cho vấn đề này là dễ dàng, chỉ cần làm cho địa chỉ email coorespond đến một id bài hoặc một số id khác chứ không phải là id người dùng trong cơ sở dữ liệu. Việc tra cứu sẽ nhanh chóng nhưng họ sẽ có một địa chỉ email mới mỗi lần.

+0

Về mặt bảo vệ địa chỉ email - địa chỉ email ẩn danh sẽ được làm mới trong khoảng thời gian được thiết lập sao cho, ví dụ: một ngày [email protected] sẽ hợp lệ và sau đó địa chỉ email đó sẽ trỏ tới không ai và thay vào đó cùng một người dùng sẽ có thể liên lạc tại [email protected] –

+1

Điều này lộn xộn .. nếu người mua và người bán tương ứng thông qua việc khôi phục email? người mua sẽ không thể tiếp cận người bán nữa. Tôi đồng ý với @Patricker rằng Id phải liên quan đến id đăng bài. – Variant

+0

@Variant, có một số mối quan tâm kinh doanh cụ thể quan trọng mà bạn không biết. Vì mục đích của tôi, đây chính là hành vi tôi muốn. –

1

Bạn có thể muốn nhìn vào mail "đường ống" - khả năng cho một người nào đó gửi email đến một máy chủ mail, sau đó bị ném ngay cho một thực thi , sau đó chuyển tiếp thư của bạn vào người nhận (bằng cách kéo địa chỉ email thực từ cơ sở dữ liệu dựa trên địa chỉ đến từ thư được gửi qua đường ống).

Đề xuất cá nhân của tôi là kiểm tra HMailServer, có API COM (phía quản trị được viết bằng PHP, do đó yêu cầu về tương tác kế thừa), miễn phí và nguồn mở, và được tài liệu hóa. Nó không có thư ống built-in, nhưng có thể dễ dàng mở rộng cho các API và hỗ trợ cho các kịch bản mà chạy trên server-side message events

HTH,

Benjamin

1

Tôi nghĩ rằng giải pháp này sẽ có ý nghĩa và là được sử dụng trong nhiều trường hợp. Phần khó nhất là thực sự nhận được tin nhắn. Bạn có thể thực sự xử lý tất cả điều này trong ứng dụng web của mình nếu cần. Tôi đã viết một bài đăng trên blog làm nổi bật một số cách để receive email in your web app. Nó áp dụng chủ yếu cho Rails nhưng các khái niệm nên được chuyển nhượng.

+0

Họ là một đối thủ cạnh tranh, nhưng [Mailgun] (http://mailgun.net/) có thể làm thủ thuật ở đây. Họ sẽ cho phép bạn nhận email đến một hộp thư trung tâm và phân tích chúng cho bất cứ điều gì bạn cần. – JonLim

0

Cách bạn đang tìm kiếm để làm điều đó là cách tôi tạo ra một dịch vụ tương tự. Tôi sẽ không khuyên bạn nên viết máy chủ smtp của riêng bạn. Sử dụng một máy chủ thư hiện có và chỉ sử dụng bỏ phiếu hoặc một số sự kiện dựa trên api.

Lợi ích của việc sử dụng máy chủ thư của bên thứ ba là bạn có thể sử dụng các công cụ sao lưu và quản lý hiện có trên đó.

Chỉnh sửa: Tôi vừa nhận thấy điều này đã được trả lời ở đây với giải thích tốt hơn.Pipe incoming email to a script on Windows IIS SMTP?

0

Tôi không thấy bất kỳ vấn đề nào với thiết lập của bạn, đó là cách chính xác để thực hiện vì nếu ứng dụng được lập lịch của bạn không thành công, email sẽ vẫn nằm trong hộp thư nhận toàn bộ email. Chỉ khi email đã được gửi thành công cho ai đó, email đó sẽ bị xóa. Bạn sẽ có thể theo dõi và ghi lại hoạt động của ứng dụng của riêng bạn để theo dõi tiến độ và thất bại.

Tôi không khuyên bạn nên Piping bởi vì, nếu vì bất kỳ lý do đường ống đi thành công nhưng exe của bạn bị treo, bạn sẽ mất email. Theo dõi sẽ khó khăn. Lập kế hoạch công việc sẽ không thể thực hiện được.

Nếu ứng dụng của bạn độc lập với máy chủ thư, bạn có thể dễ dàng quản lý và thay thế máy chủ thư của mình bất cứ khi nào có thể. Nó rất dễ dàng để mở rộng.

Trong này, bạn sẽ phải sử dụng một số thư viện trình đọc pop và lập lịch ứng dụng của bạn để chạy thường xuyên.

0

Ngoài email, bạn có thể xem xét cơ chế kéo thay vì đẩy, ví dụ: lối vào web của trung tâm nhắn tin hoặc nguồn cấp dữ liệu RSS. Tôi nói điều này vì các vấn đề về khả năng cung cấp cho các ISP khác nhau có thể rất khó khắc phục và theo kinh nghiệm của tôi, người dùng của bạn sẽ không bao giờ tin rằng đó là ISP của họ.

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