🏠 Trang chủ VNDNer CNC Hướng dẫn sử dụng Email
📧 Hướng dẫn chi tiết

Cấu hình & Gửi Email Admin

Hướng dẫn cấu hình SMTP/OAuth2, kiểm tra kết nối và gửi email cho nhân viên và khách hàng trực tiếp từ hệ thống VNDNer CNC.

🔗 Đi đến
📋 Tổng quan — Module Email

Module Email cho phép gửi email trực tiếp từ hệ thống đến nhân viên và khách hàng mà không cần mở ứng dụng email ngoài. Hệ thống sử dụng thư viện PHPMailer và hỗ trợ 2 phương thức xác thực.

⚙️ Cấu hình SMTP
(Admin)
🧪 Test kết nối
✉️ Soạn & Gửi email
📬 Email đến hộp thư
⚙️ Cấu hình email Admin
Trang email_config.php — Thiết lập SMTP (App Password hoặc OAuth2), lưu thông tin xác thực và test kết nối. Mỗi tài khoản user có cấu hình riêng.
✉️ Gửi email
Trang send_email.php — Chọn người nhận (nhân viên hoặc khách hàng), soạn tiêu đề, nội dung HTML và đính kèm file.
⚙️ Cấu hình email — email_config.php Admin

Trước khi gửi email, Admin cần cấu hình SMTP cho tài khoản của mình. Hệ thống hỗ trợ 2 phương thức xác thực:

🔑 App Password
Dùng mật khẩu ứng dụng Gmail/Outlook. Đơn giản, phù hợp cho hầu hết trường hợp.
🔐 OAuth 2.0
Xác thực bảo mật cao hơn qua Google. Yêu cầu thiết lập Google Cloud Console.

Cấu hình App Password (khuyến nghị cho người mới):

  • 1
    Chọn nhà cung cấp email
    Chọn Gmail, Outlook hoặc nhập SMTP tùy chỉnh. Với Gmail: host smtp.gmail.com, port 587.
  • 2
    Chọn phương thức: App Password
    Tick chọn tab App Password.
  • 3
    Nhập địa chỉ Gmail và App Password
    Nhập email ([email protected]) và App Password 16 ký tự (tạo tại Google Account → Security → 2-Step Verification → App Passwords). Không dùng mật khẩu Gmail thông thường.
  • 4
    Nhập tên người gửi
    Tên hiển thị trong hộp thư người nhận. Ví dụ: VNDNer CNC - Xưởng ABC.
  • 5
    Lưu cấu hình
    Bấm Lưu cấu hình. Hệ thống lưu vào bảng email_configs theo từng cặp bussines_id + user_id.
⚠️
Bắt buộc bật 2-Step VerificationGmail yêu cầu tài khoản phải bật xác minh 2 bước trước khi tạo App Password. Nếu chưa bật, tùy chọn App Passwords sẽ không xuất hiện.
🔐 Cấu hình OAuth 2.0 (nâng cao)

OAuth 2.0 là phương thức xác thực bảo mật cao hơn App Password, không cần lưu mật khẩu trực tiếp. Phù hợp cho môi trường doanh nghiệp.

TrườngMô tả
Client IDLấy từ Google Cloud Console khi tạo OAuth2 credentials.
Client SecretSecret key đi kèm với Client ID.
Gmail AccountEmail Gmail được uỷ quyền gửi thư.
Access TokenToken tạm thời, tự động refresh khi hết hạn (qua Google API).
Refresh TokenToken dài hạn để tự động lấy Access Token mới.
Token ExpiryThời gian hết hạn của Access Token. Hệ thống tự refresh trước 60 giây.
🔄
Tự động refresh tokenHệ thống kiểm tra oauth_token_expiry trước mỗi lần gửi. Nếu token sắp hết hạn, tự động gọi Google API để lấy token mới và cập nhật vào database.
🧪 Kiểm tra kết nối SMTP

Sau khi lưu cấu hình, luôn test kết nối trước khi gửi email thật.

  • 1
    Bấm "🧪 Test kết nối"
    Hệ thống gửi một email test đến chính địa chỉ Gmail đã cấu hình.
  • 2
    Kết quả thành công
    Thông báo ✅ Test gửi email thành công! xuất hiện. Kiểm tra hộp thư Gmail để xác nhận nhận được email test.
  • 3
    Kết quả thất bại
    Thông báo lỗi hiển thị nội dung lỗi từ PHPMailer. Nguyên nhân thường gặp: App Password sai, chưa bật 2-Step Verification, hoặc SMTP host/port sai.
🔍
Lỗi "Username and Password not accepted"Xảy ra khi dùng mật khẩu Gmail thông thường thay vì App Password 16 ký tự. Đảm bảo tạo App Password đúng cách tại Google Account.
✉️ Gửi email — send_email.php

Trang Gửi email cho phép gửi email đến nhiều nhân viên và khách hàng cùng lúc, với nội dung HTML và file đính kèm.

  • 1
    Chọn người nhận
    Có 2 danh sách người nhận: Nhân viên (từ bảng employees) và Khách hàng (từ bảng customers). Chọn nhiều người bằng cách tick vào các checkbox. Hệ thống chỉ hiển thị người có địa chỉ email hợp lệ.
  • 2
    Nhập tiêu đề email *
    Tiêu đề hiển thị trong hộp thư người nhận. Không được để trống.
  • 3
    Soạn nội dung email
    Hỗ trợ nội dung HTML — có thể định dạng đậm, màu sắc, danh sách và liên kết. Email được gửi với encoding UTF-8 để hỗ trợ tiếng Việt đầy đủ.
  • 4
    Đính kèm file (nếu cần)
    Chọn một hoặc nhiều file để đính kèm. File được lưu tạm vào uploads/email_attachments/ trước khi gửi.
  • 5
    Bấm "Gửi email"
    Hệ thống gửi lần lượt từng email đến từng người nhận. Kết quả hiển thị danh sách gửi thành công () và thất bại () sau khi hoàn tất.
📎 File đính kèm trong email
Thông tinChi tiết
Số lượng fileKhông giới hạn số file đính kèm trong một lần gửi.
Định dạngTất cả định dạng file thông thường: PDF, ảnh, Word, Excel, ZIP...
Thư mục lưuFile được lưu tạm vào uploads/email_attachments/ trên server khi upload.
Tên fileTên gốc được giữ nguyên, thêm timestamp để tránh trùng tên khi lưu.
💡
Gửi báo giá qua emailCó thể đính kèm file PDF báo giá (xuất từ quotation_detail.php) để gửi trực tiếp đến khách hàng từ hệ thống mà không cần mở email client ngoài.
⚠️ Lưu ý quan trọng
⚙️
Phải cấu hình trước khi gửiNếu chưa có cấu hình email, trang Gửi email sẽ hiển thị cảnh báo và link dẫn đến trang Cấu hình. Không thể gửi email khi chưa thiết lập SMTP.
👤
Cấu hình theo từng userMỗi tài khoản nhân viên có cấu hình email riêng biệt. Admin cần cấu hình cho từng người dùng cần dùng tính năng gửi email.
📧
Khách hàng cần có emailChỉ khách hàng đã nhập địa chỉ email trong hồ sơ mới xuất hiện trong danh sách người nhận. Cập nhật email khách hàng tại Quản lý khách hàng.
🚨
Gmail giới hạn gửi hàng loạtGmail App Password giới hạn khoảng 500 email/ngày. Nếu cần gửi số lượng lớn, nên dùng dịch vụ SMTP chuyên nghiệp (SendGrid, Mailgun...) với cấu hình SMTP tùy chỉnh.
🔒
Bảo mật App PasswordApp Password có quyền truy cập đầy đủ vào Gmail. Không chia sẻ App Password và nên thu hồi khi không còn dùng nữa tại Google Account → Security → App Passwords.

Tiếp tục khám phá các chức năng liên quan:

Cấu hình email Gửi email ngay Hướng dẫn Báo giá Quản lý khách hàng Mục lục hướng dẫn