Skip to content

huuthi139/WEMAIL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📧 WeMail — Hệ thống Mail Server & Email Marketing của AMANVITA GROUP

Mail server tự host + nền tảng email marketing cho cả hệ sinh thái AMANVITA: gửi transactional, gửi chiến dịch hàng loạt, IP warmup, theo dõi mở/click, và cắm thẳng vào CRM qua API. Chạy trên engine mail mã nguồn mở (Postfix · Dovecot · Rspamd · Go core), self-host bằng Docker trên VPS — không phụ thuộc Resend/SendGrid/SES.

Chủ quản: Nguyễn Hữu Thi — Chairman, AMANVITA GROUP Trạng thái: đang chạy production tại mail.huuthi.com · gửi từ nguyenhuuthi@amanvita.vn · mail-tester 10/10


✨ WeMail làm được gì

Nhóm Tính năng
Gửi Transactional (API x-api-key) · chiến dịch bulk (UI) · đa domain · Spintax chống trùng
Nhận IMAP/POP (993/995 TLS) · Webmail (Roundcube) · mailbox cho nhân sự
Deliverability SPF · DKIM · DMARC · rDNS/FCrDNS · IP warmup tự động · không vào spam
Theo dõi Mở / click / bounce / complaint — lưu theo từng người nhận
Tích hợp API HTTP cho CRM & mọi tool trong hệ sinh thái (đọc engagement từ DB)
Bảo mật Chống brute-force (fail2ban-lite) · cảnh báo tự động · TLS thật · backup hằng ngày

🗂️ Nội dung repo (giới thiệu từng mục)

SKILL.md — Điểm vào

Mental model toàn hệ thống + bảng tra cứu "việc nào đọc file nào". Đọc đầu tiên.

docs/ — Tài liệu vận hành

File Nội dung
architecture.md Bức tranh tổng thể: 7 container, luồng gửi, bảng DB, và các "gotcha" quan trọng. Đọc TRƯỚC khi thao tác.
deploy.md Cài đặt từ đầu: Docker Compose, port phụ + Caddy reverse-proxy (chạy chung VPS với app khác).
dns-rdns.md Cấu hình DNS (Cloudflare/HostVN), rDNS, và chẩn đoán mail vào spam (mail-tester, DKIM).
domain-mailbox-dkim.md Thêm domain gửi mới + sinh DKIM + tạo mailbox (lệnh sẵn).
sending.md Gửi mail: test CLI, chiến dịch UI, gửi chậm an toàn, chuẩn List-Unsubscribe.
warmup.md Cơ chế IP warmup + lịch tăng dần lượng gửi.
tracking-and-tags.md Theo dõi gửi/nhận/mở/click + giới hạn tag.
crm-integration.md Cắm API vào CRM — endpoint, body, hợp đồng API (đã test thật).
AI-INTEGRATION.md Brief ngắn để AI khác hiểu nhanh cách đấu mail vào tool mới.
audit-report.md Báo cáo audit bảo mật + changelog hardening + backlog.

Pipelines/ — Quy trình end-to-end

  • deploy-new-instance.md — checklist dựng instance mới từ A→Z.
  • add-domain-and-send.md — thêm domain gửi + chạy chiến dịch đầu tiên.

references/ — Tra cứu

  • sql-snippets.md — câu SQL hữu ích (ai mở/click, gắn tag, đổi giới hạn gửi…).
  • live-instance.example.md — mẫu file thông tin instance (IP/credentials). Bản thật live-instance.md được .gitignore, không bao giờ lên GitHub.

CHANGELOG.md

Lịch sử thay đổi + trạng thái mới nhất.


🚀 Bắt đầu nhanh

Bạn muốn… Đọc
Hiểu hệ thống SKILL.mddocs/architecture.md
Dựng instance mới Pipelines/deploy-new-instance.md
Cho 1 tool/CRM gửi mail docs/crm-integration.md + docs/AI-INTEGRATION.md
Mail vào spam, sửa sao? docs/dns-rdns.md (§Troubleshooting)
Thêm domain / nhân sự docs/domain-mailbox-dkim.md

🏗️ Kiến trúc (tóm tắt)

Tool / CRM / Landing ──(HTTP POST, x-api-key)──► WeMail API (/api/batch_mail/api/send)
                                                      │
   Core (Go) ─ rate-control + warmup + spintax + render ─► Postfix ─►(Rspamd ký DKIM)─► Internet
       │
       ├─ PostgreSQL (domain · mailbox · contact · campaign · mailstat_*)
       └─ Tracking pixel/link ──► mailstat_opened / mailstat_clicked

Stack: Postfix · Dovecot · Rspamd · Go (GoFrame) · PostgreSQL 17 · Redis 7 · Vue 3 · Roundcube — Docker Compose (7 container).


🔌 Tích hợp (cho CRM & tool khác)

POST https://mail.huuthi.com/api/batch_mail/api/send
Header: x-api-key: <KEY>
Body:   { "recipient": "khach@gmail.com",
          "attribs": { "subject": "...", "html": "<p>...</p>" } }
  • Gửi bất đồng bộ (queue) → trả { "success": true }.
  • Đọc tương tác: bảng mailstat_opened / mailstat_clicked.
  • Chi tiết + 3 gotcha (prefix /api, subject/html trong attribs, addresser email thuần): xem docs/crm-integration.md.

🔐 Bảo mật

  • Không có secret trong repo. Credentials thật (references/live-instance.md) đã .gitignore — chỉ giữ local / secrets manager. Repo nên để PRIVATE.
  • Server: chống brute-force (fail2ban-lite + tắt AUTH port 25), TLS thật (Let's Encrypt), cảnh báo tự động, backup DB hằng ngày, core UI không phơi internet (sau Caddy).
  • Cấp x-api-key riêng cho từng tool; mỗi mailbox đặt mật khẩu mạnh.

🏷️ Ghi chú kỹ thuật

Engine chạy theo quy ước đặt tên wepowermail-* (container/path/DB/image) — đây là plumbing backend, người nhận mail / khách hàng không bao giờ thấy. Mọi mặt tiền (email, domain, From) đều là AMANVITA GROUP / amanvita.vn.


🙏 Credits / Nguồn mở (ghi nguồn)

WeMail là phần triển khai · cấu hình · hardening · tích hợp · tài liệu của AMANVITA GROUP, xây dựng trên các phần mềm mã nguồn mở của các tác giả gốc — xin trân trọng ghi nhận:

Thành phần Tác giả / Nguồn Giấy phép
BillionMail (engine core: API + UI quản lý + warmup/tracking) aaPanel — github.com/aaPanel/BillionMail AGPL-3.0
Postfix (MTA gửi/nhận) Wietse Venema IBM Public License / EPL
Dovecot (IMAP/POP) Dovecot Oy MIT / LGPL
Rspamd (antispam + DKIM) Vsevolod Stakhov Apache-2.0
Roundcube (webmail) Roundcube team GPL-3.0
PostgreSQL · Redis PostgreSQL License · BSD

Engine BillionMail giữ giấy phép gốc AGPL-3.0 của tác giả. WeMail KHÔNG relicense engine; chỉ bổ sung lớp triển khai/tài liệu/tích hợp riêng của AMANVITA. Mọi tinh chỉnh cấu hình tôn trọng bản quyền tác giả gốc.


👤 Tác giả & Liên hệ

Nguyễn Hữu Thi — Chairman, AMANVITA GROUP


© AMANVITA GROUP — Tài liệu nội bộ. Người ký: Nguyễn Hữu Thi — Chairman.

About

WeMail — Hệ thống Mail Server & Email Marketing tự host của AMANVITA GROUP (docs + pipelines + CRM integration)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors