Bỏ qua, đến nội dung

Cài đặt và sử dụng — Mailbox

Tổng quan

Plugin Mailbox cho phép nhận, gửi, và quản lý email trực tiếp trong Digiforce — kết nối với tài khoản email doanh nghiệp (Gmail, Outlook) thông qua OAuth2. Email được tổ chức theo conversation thread, hỗ trợ reply/forward, đính kèm file, gửi hàng loạt, và hẹn giờ gửi.

Bước 1: Kích hoạt Plugin

Truy cập Settings → Plugin Manager, tìm plugin-mailbox và bật plugin. Khởi động lại server.

Bước 2: Cấu hình tài khoản email

Vào Settings → Mailbox để thêm tài khoản email. Plugin hỗ trợ hai nhà cung cấp chính:

Google (Gmail)

  1. Nhấn Add Account → Google
  2. Plugin tạo link OAuth2 (oauth2url) và chuyển hướng đến trang xác thực Google
  3. Sau khi cấp quyền, plugin nhận authorization code và tạo tài khoản (createAccount)
  4. Token được lưu trong bảng mailAccounts

Microsoft (Outlook/Office 365)

  1. Nhấn Add Account → Microsoft
  2. Luồng tương tự qua Microsoft OAuth2 (MSAL)
  3. Sử dụng Microsoft Graph API để gửi/nhận email

Bảng cấu hình tài khoản

TrườngKiểu dữ liệuMô tả
typestringLoại nhà cung cấp: google hoặc microsoft
emailstringĐịa chỉ email
userIdbigIntID người dùng Digiforce sở hữu tài khoản
tokensjsonToken OAuth2 (access token, refresh token)
settingIdbigIntLiên kết đến cấu hình mail setting
configjsonCấu hình bổ sung (signature, v.v.)

Bước 3: Đồng bộ email

Sau khi thêm tài khoản, plugin tự động bắt đầu đồng bộ email:

  • Đồng bộ định kỳ: Plugin chạy schedule tự động đồng bộ email mới
  • Đồng bộ thủ công: Nhấn Sync trong giao diện hoặc gọi API mail:messagesSync
  • Đồng bộ lại toàn bộ: Gọi mail:messagesResync để sync lại từ đầu

Tính năng chính

Gửi email

Soạn email mới hoặc reply/forward từ giao diện Digiforce:

Tính năngMô tả
Soạn mớiRich text editor, hỗ trợ To/Cc/Bcc
Reply / ForwardTrả lời hoặc chuyển tiếp trong conversation thread
Đính kèm fileUpload attachment qua mail:messageAttachmentUpload
Hẹn giờ gửiĐặt scheduleSendAt — email sẽ được gửi tự động vào thời điểm đã chọn
Lưu nhápLưu bản nháp qua mail:messageSavingDraft
Chữ kýChọn signature cho mỗi tài khoản email

Gửi hàng loạt (Mass Send)

Plugin hỗ trợ gửi email hàng loạt đến danh sách liên hệ từ Collection:

  • mailMassMessages:send — Gửi hàng loạt
  • mailMassMessages:resend — Gửi lại email thất bại
  • mailMassMessages:cancel — Huỷ gửi hàng loạt
  • Theo dõi trạng thái gửi qua Mass Send Tracking

Quản lý email

Tính năngAPIMô tả
Đánh dấu đã đọcmail:messageSetReadedCập nhật trạng thái isRead
Chuyển thùng rácmailMessages:trashChuyển email sang boxType: trash
Xoá vĩnh viễnmailMessages:destroyXoá email khỏi database
Huỷ gửi hẹn giờmailMessages:cancelTimelySendHuỷ email đã hẹn giờ
Gán nhãnLabel associationGán label (nhiều-nhiều) cho email
Ghi chúNote associationThêm ghi chú nội bộ cho email
Đánh dấu TodoisTodo flagĐánh dấu email cần theo dõi

Hộp thư (Box Types)

LoạiGiá trịMô tả
Hộp thư đếninEmail nhận được
Đã gửioutEmail đã gửi
NhápdraftBản nháp chưa gửi
Thùng ráctrashEmail đã xoá (có thể khôi phục)
SpamspamEmail rác
Lưu trữarchiveEmail đã lưu trữ
Hẹn giờscheduledEmail chờ gửi theo lịch
Hàng loạtmassEmail gửi hàng loạt

Cấu hình chung (General Settings)

Vào Settings → Mailbox → General Settings để cấu hình:

  • Tần suất đồng bộ email
  • Khi thay đổi cấu hình, schedule tự động cập nhật (event mailGeneralSettings.afterSave)

Database Schema

BảngMô tả
mailAccountsTài khoản email (type, email, tokens, config)
mailMessagesEmail messages (from, to, subject, body, boxType, attachments)
mailMessageLabelsNhãn email (label, color)
mailLabelRelBảng trung gian: nhiều-nhiều giữa message và label
mailMessageNotesGhi chú nội bộ cho email
mailTemplatesTemplate email có thể tái sử dụng
mailMassMessagesQuản lý gửi email hàng loạt
mailSettingsCấu hình IMAP/SMTP cho từng tài khoản
mailGeneralSettingsCấu hình chung (tần suất sync, v.v.)

Lưu ý khi triển khai

  • OAuth2 credentials: Cần cấu hình Google OAuth Client ID hoặc Microsoft App Registration trước khi thêm tài khoản
  • Token refresh: Plugin tự động refresh token khi hết hạn
  • Email lowercase: Plugin tự động normalize địa chỉ email về lowercase (hook registerMailAddressLowercaseHook)
  • Path traversal: Attachment upload được bảo vệ chống path traversal
  • Database index: Plugin tự động tạo index cho các trường thường dùng trong filter (boxType, userId, email, isRead, v.v.)
  • Dung lượng: Email có attachment lớn sẽ tăng dung lượng database — cân nhắc cấu hình giới hạn kích thước