Tương đương webmail (Community và Enterprise)
Webmail của Community và webmail của Enterprise (HiTechCloud Webmail, mô-đun webmail,
cây webmail/ của kho hitechcloudmail, được cài bởi
hitechcloudcli webmail) là hai ứng dụng khác nhau. Quy tắc của chủ sở hữu
cho cặp này là vô điều kiện: Enterprise là tập cha. Bất cứ thứ gì
webmail của Community mang lại cho người dùng cuối, webmail của Enterprise cũng phải mang lại — một tài khoản
nâng cấp từ Community không được thấy thiếu bất kỳ thứ gì.
Trang này là bản rà soát khoảng trống theo quy tắc đó: những gì một bản cài mặc định của
webmail Community mang lại cho người dùng cuối (bản thân phần mềm thư, cộng với
các thiết lập người dùng dựa vào hằng ngày), đối chiếu với những gì thực sự
được triển khai trong mã nguồn của hitechcloudmail/webmail — không giả định, không suy ra
từ tên của tính năng, mà đọc trong mã. Bảng được cập nhật bởi
người đóng một khoảng trống: đóng một khoảng trống sẽ đổi kết luận và cột
"nằm ở đâu" của nó trong cùng thay đổi đóng khoảng trống đó.
Tóm tắt
| Kết luận | Số lượng |
|---|---|
| Có | 17 |
| Một phần | 2 |
| Thiếu | 2 |
| Tổng số mục đã rà soát | 21 |
Bảng
| Mục | Webmail của Community | Webmail của Enterprise (HiTechCloud Webmail) | Kết luận | Nằm ở đâu / cần gì |
|---|---|---|---|---|
| Quản lý thư mục — tạo, đổi tên, dọn sạch | Có | Có | Có | hitechcloudmail/webmail/backend/src/routes/mail.js (POST /folders, /folders/rename, /folders/empty), backend/src/routes/accounts.js (GET /:id/folders) |
| Quản lý thư mục — đăng ký/huỷ đăng ký | Có (IMAP SUBSCRIBE thực sự) | Chỉ ẩn/hiện (tuỳ chọn phía máy khách, không phải đăng ký IMAP) | Một phần | frontend/src/components/Sidebar.jsx (folderMenu.hide/unhide). SUBSCRIBE/UNSUBSCRIBE IMAP thực sự chỉ có ý nghĩa với một phần mềm IMAP khác dùng chung hộp thư — ưu tiên thấp hơn các mục bên dưới, để mở |
| Danh tính kèm chữ ký (văn bản thường và HTML) | Có | Có | Có | Bảng account_aliases (reply_to, bcc, signature) cùng cột signature riêng của tài khoản chính; frontend/src/components/SignatureEditor.jsx, frontend/src/components/AdminPanel.jsx (tab Accounts); chữ ký HTML đi qua services/emailSanitizer.js |
| Sổ địa chỉ / danh bạ, có nhóm | Có | Có | Có | Các bảng contacts, address_books, contact_groups, contact_group_members; backend/src/services/contactGroups.js; frontend/src/components/ContactsPage.jsx (chip lọc theo nhóm, bật/tắt nhóm cho từng liên hệ) |
| Nhập và xuất danh bạ (vCard / CSV) | Có | Có | Có | backend/src/routes/contacts.js (GET /export, POST /import), backend/src/utils/vcard.js, backend/src/utils/csv.js |
| Tìm kiếm thư, kể cả trong thư mục được chọn và theo header | Có | Có | Có | backend/src/routes/search.js (parseSearchQuery): các toán tử from:, to:, subject:, has:, is:, after:, before:, in:<folder> cộng với văn bản tự do |
| Gom luồng và sắp xếp | Có | Có | Có | backend/src/routes/mail.js (hộp thư đến gom theo luồng, threadId); thứ tự sắp xếp danh sách trong frontend/src/store/index.js |
| Bộ lọc / Sieve | Có (do chính máy chủ thư thực thi, nên vẫn chạy khi phần mềm đóng) | Chỉ là bộ máy quy tắc trong ứng dụng — chạy khi tiến trình riêng của webmail đang thăm dò hộp thư | Một phần | backend/src/routes/rules.js, backend/src/services/inboxRules.js, backend/src/services/ruleForwarder.js. Tương đương thực sự cần thực thi Sieve phía máy chủ (ManageSieve), vốn thuộc về máy chủ thư (Dovecot/Postfix), không nằm trong kho này — được đánh dấu cho một vòng tiếp theo trong phạm vi mô-đun thư của hitechcloudcli |
| Vắng mặt / trả lời tự động | Có | Không | Thiếu | Không có route, dịch vụ hay giao diện nào. Cùng phụ thuộc như Sieve ở trên: cần hạ tầng ở cấp MTA/ManageSieve nằm ngoài kho này |
| Kiểm tra chính tả | Có (sẵn trong trình duyệt) | Có (sẵn trong trình duyệt) | Có | Vùng contenteditable của trình soạn thư (frontend/src/components/ComposeModal.jsx) dùng trình kiểm tra chính tả của chính trình duyệt, cùng cơ chế mà hầu hết phần mềm webmail dựa vào |
| Tuỳ chọn danh sách thư (bố cục, khung xem trước, kích thước trang) | Có | Có | Có | frontend/src/layouts.js, frontend/src/components/AdminPanel.jsx (tab Appearance › Layout), tuỳ chọn mailflow_page_size |
| Tuỳ chọn soạn thư (mặc định HTML/văn bản thường, trích dẫn khi trả lời, chuyển tiếp dạng tệp đính kèm, lưu vào thư đã gửi, tự lưu bản nháp) | Có | Có | Có | Tuỳ chọn plaintextEmail; trả lời luôn trích dẫn thư gốc; chuyển tiếp giữ nguyên tệp đính kèm gốc; theo dõi sentCopySaved trong backend/src/services/outboundMail.js; frontend/src/utils/draftAutosave.js |
| Xử lý tệp đính kèm và ảnh nội tuyến | Có | Có | Có | Đường soạn/xem thư cốt lõi trong toàn bộ backend/src/routes/mail.js và send.js, và frontend/src/utils/inlineImages.js |
| Phím tắt | Có (bộ cố định) | Có (tuỳ chỉnh được) | Có | frontend/src/utils/defaultShortcuts.js, frontend/src/utils/shortcutBus.js, tab Settings › Shortcuts |
| In | Có | Có | Có | handlePrint trong frontend/src/components/MessagePane.jsx |
| Mã nguồn thư ("view source" / "show original") | Có | Có | Có | GET /api/mail/messages/:id/source (backend/src/routes/mail.js, imapManager.fetchRawSource); truy cập từ thanh công cụ thư, menu "more" trên di động và menu chuột phải |
| Cách đánh dấu đã đọc | Có (ngay lập tức / trễ khi mở / thủ công, cấu hình được) | Có, cùng ba ch ế độ | Có | Các tuỳ chọn markReadBehavior / markReadDelay, frontend/src/utils/gtd.js |
| Xoá vào thùng rác và xoá vĩnh viễn | Có | Có | Có | Xoá thông thường chuyển thư vào Trash; làm trống thư mục hoặc xoá hàng loạt từ Trash/Junk sẽ xoá vĩnh viễn — backend/src/routes/mail.js |
| Ngôn ngữ giao diện | Có | Có (10 ngôn ngữ) | Có | frontend/src/locales/*.json, Settings › Appearance › Fonts and Language |
| Múi giờ hiển thị ngày của thư | Có | Có | Có | Tuỳ chọn mới "Display timezone" (vòng này): frontend/src/utils/formatDate.js, Settings › Appearance › Fonts and Language |
| Đổi mật khẩu hộp thư | Có | Không | Thiếu | Tiến trình backend của webmail chạy không đặc quyền và chỉ giao tiếp qua IMAP và cơ sở dữ liệu riêng của nó — nó không có cách nào đổi mật khẩu hệ thống/Dovecot. Cần một công cụ phụ đặc quyền ở cấp hệ thống nằm ngoài kho này (ứng viên: một lệnh trong mô-đun thư của hitechcloudcli mà trang cài đặt có thể gọi) |
| Reply-To / Bcc theo từng danh tính | Có | Có, trên mọi danh tính trừ danh tính chính (cùng phạm vi mà trường Reply-To hiện có đã có) | Có | account_aliases.reply_to / account_aliases.bcc, áp dụng lúc gửi trong backend/src/services/outboundMail.js (resolveIdentity, mergeIdentityBcc) |
| Bố cục đáp ứng / di động | Có | Có | Có | frontend/src/hooks/useMobile.js và các nhánh riêng cho di động trong toàn bộ frontend/src/components/; vỏ ứng dụng di động/máy tính gốc trong frontend/packages/ |
Những gì được chuyển từ Community, và bằng cách nào
Dữ liệu phiên bản Community của một hộp thư (danh bạ, nhóm liên hệ, danh tính người gửi và chữ ký của chúng, và ngôn ngữ giao diện) được sao chép — không bao giờ di chuyển — sang dữ liệu Enterprise của nó ở lần đầu hộp thư đó đăng nhập vào webmail của Enterprise trên máy chủ mà cơ sở dữ liệu phần mềm thư của Community vẫn truy cập được. Cơ sở dữ liệu riêng của Community không bao giờ bị ghi: khách hàng quay lại webmail của Community sẽ thấy nó y như lúc rời đi. Việc nhập có tính idempotent (bỏ qua mọi thứ đã có ở đây, so khớp theo địa chỉ), chạy tối đa một lần cho mỗi hộp thư, ghi nhật ký những gì đã làm, và không bao giờ chặn hay làm thất bại lần đăng nhập mà nó chạy kèm.
Xem hitechcloudmail/backend/src/services/legacyImport.js. Nó chỉ kích hoạt
khi LEGACY_WEBMAIL_DB_URL được đặt trong môi trường của dịch vụ đó — việc nối
biến môi trường đó từ nơi trình cài Community ghi lại kết nối cơ sở dữ liệu
của nó là công việc tiếp theo cho vòng trình cài đặt, không phải vòng này.
Những gì còn để mở, và vì sao
- Đổi mật khẩu hộp thư và bộ lọc Sieve phía máy chủ /
trả lời vắng mặt khi ngoại tuyến đều cần thứ gì đó nằm ngoài tiến trình riêng
của
hitechcloudmail: một công cụ phụ hệ thống có đặc quyền cho mục đầu, cơ chế thực thi của máy chủ thư (ManageSieve) cho mục sau. Cả hai được đánh dấu ở trên thay vì xây dựng ở đây, để khoảng trống được nhìn thấy thay vì bị âm thầm chấp nhận. - Đăng ký thư mục thực sự ở cấp IMAP là khoảng trống nhỏ hơn: webmail của Enterprise đã cung cấp cho người dùng của nó một tính năng tương đương (ẩn/hiện), và sự khác biệt chỉ xuất hiện với một phần mềm IMAP thứ hai dùng chung hộp thư.
Liên quan
- Phiên bản và mô-đun — cách một mô-đun (như
webmail) được cài và kiểm soát quyền truy cập.