2011-06-21 23 views
5

Tôi thực sự không quen thuộc với các máy chủ thư nói chung vì vậy hãy tha thứ cho sự thiếu hiểu biết của tôi.Cách liên lạc với máy chủ thư qua ứng dụng web

Tôi cần có thể quản lý máy chủ thư thông qua ứng dụng web dựa trên Spring của mình. Bằng cách quản lý, tôi có nghĩa là tạo tài khoản thư cho người dùng mới, lắng nghe các cập nhật đến từ những người dùng đó, xóa tài khoản, khi tài khoản người dùng bị xóa, v.v., v.v.

Tôi giả định rằng máy chủ thư (ít nhất là) cung cấp một số loại API dịch vụ (SOAP, REST, nó không quan trọng) thông qua đó một ứng dụng có thể móc và thực hiện thay đổi. Tuy nhiên, tôi thực sự không quen thuộc với những gì các máy chủ nguồn mở tốt ra khỏi đó, và những lựa chọn mà họ cung cấp.

Tôi sẽ rất vui nếu có ai đó, có thể đề xuất giải pháp.

+0

Bạn thực sự muốn làm gì với máy chủ thư? Cung cấp hộp thư cho người dùng, gửi email từ ứng dụng của bạn, nhận nó? Tôi nghĩ rằng các câu trả lời sẽ khác nhau tùy thuộc vào mục tiêu thực tế của bạn. Tôi biết bạn đã liệt kê một vài điều nhưng chúng là những hành động không phải là những gì bạn đang làm với nó. –

+0

Giả sử bây giờ tôi muốn tạo một tài khoản thư cho mỗi người dùng đã đăng ký trong hệ thống.Làm thế nào để tôi làm điều đó với ít đau nhất? – user802232

+0

Trong trường hợp xấu nhất, tôi có thể sử dụng sendmail và gọi nó từ ứng dụng Spring, bằng cách chuyển các thông số cần thiết cho nó. – user802232

Trả lời

3

Có một máy chủ thư có tên Zimbra có phiên bản cộng đồng nguồn mở, có giao diện REST và cũng là một SOAP.

  • REST reference (nếu tôi hiểu đúng điều này sẽ không phù hợp với nhu cầu của bạn bởi vì bạn chỉ có thể thao tác tài khoản hiện qua này)
  • SOAP interface; một ví dụ here, có nhiều người khác trên diễn đàn.
4

Một giải pháp khả thi là sử dụng phần mềm với plugin cơ sở dữ liệu chung. Ứng dụng web của bạn không tương tác với máy chủ thư, thay vào đó nó chỉ điền vào một bảng người dùng trong cơ sở dữ liệu mysql. trong trường hợp đơn giản nhất, bảng này có trường tên người dùng và trường mật khẩu. Trong hầu hết các thiết lập thực tế, một vài trường bổ sung được yêu cầu như "người dùng bị tắt" hoặc "người dùng có thể kết nối với IMAP", "vị trí của người dùng homedir/maildir", ... Nếu người dùng của bạn cũng có thể tạo tên miền mới, bạn cũng cần một bảng cho điều đó.

Sau đó, bạn cần phần mềm máy chủ thư có phần phụ trợ cơ sở dữ liệu.

Để lưu trữ hộp thư, bạn có thể sử dụng máy chủ IMAP/POP3 dovecot. Nó hỗ trợ tất cả các thứ ưa thích như hạn ngạch sử dụng, tự động tạo ra các hộp thư, vv đây, bạn sẽ tìm thấy tài liệu về cách cấu hình dovecot với một cơ sở dữ liệu phụ trợ: http://wiki2.dovecot.org/AuthDatabase/SQL

Đối thực sự nhận được mail bằng STMP bạn cũng cần một phần mềm MTA. Ở đây, lựa chọn tốt sẽ là postfix. Nếu người dùng của bạn có thể tạo tên miền mới, bạn cần thêm cấu hình mysql cho postfix biết tên miền nào có thể chấp nhận thư. Vì tôi không biết yêu cầu của tên miền của bạn một cách chính xác tôi chỉ cần đi để chỉ cho bạn vào miền ảo postfix chung howto lưu trữ: http://www.postfix.org/VIRTUAL_README.html

Cuối cùng, nếu người dùng của bạn sẽ có thể gửi mail cũng bạn cần cấu hình SASL trong postfix. Điều này khá đơn giản nếu bạn đã có cấu hình dovecot. nó boils xuống để nói postfix "hey, tôi đã có xác thực người dùng được cấu hình trong dovecot, tôi không muốn làm điều đó một lần nữa, chỉ cần nói chuyện với dovecot và để cho nó làm công việc". Tài liệu có tại đây: http://www.postfix.org/SASL_README.html#server_dovecot

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