WooCommerce gửi 11 loại email transactional tự động (đơn mới, thanh toán xong, hoàn thành, refund, password reset…) qua hàm PHP mail() bị block ở 80% shared hosting VN. Setup SMTP qua Gmail, SendGrid hoặc Brevo cộng DKIM, SPF, DMARC là bắt buộc để email vào inbox khách thay vì spam folder.
Bài này hướng dẫn cấu hình end-to-end trong 1-2 giờ với 3 lựa chọn mail server theo quy mô shop.
Vì sao cần SMTP relay thay vì PHP mail() mặc định
WooCommerce default gửi email qua wp_mail() fallback về PHP mail() — cách này fail ở khoảng 80% shared hosting VN. Email không gửi đi được vì port 25/465 bị block, hoặc gửi được nhưng vào spam folder vì thiếu DKIM/SPF/DMARC.
SMTP relay qua provider chuyên biệt như Gmail, SendGrid hay Brevo giải quyết cả 2 vấn đề trên cộng thêm log để track delivery rate. Setup mất 1-2 giờ nhưng tăng tỷ lệ email vào inbox từ khoảng 60% lên trên 95%.
4 vấn đề của PHP mail() mặc định
Hiểu rõ 4 vấn đề dưới đây giúp giải thích vì sao nhiều shop email không gửi được dù plugin báo “Email sent successfully”. Lỗi nằm ở tầng hosting và DNS, không phải tầng WooCommerce.
- Hosting block port 25/465: 80% shared hosting VN block port mail để chống spam — email không gửi đi, queue im lặng không báo lỗi cho admin.
- Không có DKIM/SPF authentication: Gmail và Outlook từ 2024 require SPF kèm DKIM, thiếu thì email tự động vào spam folder.
- From address không verified: mặc định
[email protected]không khớp MX records của domain dẫn tới bounce hoặc reject. - Không có log delivery: không biết email nào fail, không track được conversion từ email confirm và bị mù về performance.
11 loại email WooCommerce — cái nào quan trọng nhất
WooCommerce có sẵn 11 transactional email cho cả admin và customer. Đa số shop chỉ cần customize 4 loại quan trọng nhất, 7 loại còn lại để default.
Vào WooCommerce → Settings → Emails để xem danh sách và customize template từng loại.
Bảng phân loại 11 email theo mức độ ưu tiên
| Loại email | Recipient | Khi nào gửi | Ưu tiên |
|---|---|---|---|
| New order | Admin | Khi có đơn mới | Cao — admin biết đơn về |
| Processing order | Customer | Đã thanh toán, chờ ship | Cao — trust signal |
| Completed order | Customer | Đã giao thành công | Cao — kèm review request |
| Customer invoice | Customer | Theo yêu cầu | Trung bình — B2B |
| Cancelled / Failed / Refunded | Admin + Customer | Đơn fail | Trung bình |
| On-hold / Customer note | Customer | Status đặc biệt | Thấp |
| New account / Password reset | Customer | Đăng ký / reset | Thấp |
Cách 1 — Gmail SMTP (miễn phí, dễ nhất, dưới 500 email/ngày)
3 SMTP provider phổ biến cho shop VN là Gmail, SendGrid và Brevo — chọn theo volume email, ngân sách và level kỹ thuật. Bảng dưới giúp quyết định nhanh trong 2 phút trước khi vào setup chi tiết.
- Gmail SMTP: 500 email/ngày miễn phí, setup OAuth khoảng 30 phút. Phù hợp shop nhỏ dưới 100 đơn/ngày DIY.
- SendGrid: 100 email/ngày miễn phí, 19,95 USD/tháng cho 50K. Setup nhanh chỉ cần API key.
- Phù hợp shop scale enterprise.
- Brevo (Sendinblue): 300 email/ngày miễn phí, UI tiếng Việt. Phù hợp shop trung bình VN cần support tiếng Việt.
Quyết định nhanh: shop nhỏ DIY chọn Gmail, shop trung bình VN chọn Brevo, shop trên 50K email/tháng chọn SendGrid. Setup tất cả đều qua plugin WP Mail SMTP miễn phí — interface đồng nhất cho cả 3 provider.
Cài WP Mail SMTP và tạo Google OAuth
- Cài plugin WP Mail SMTP by WPForms (3 triệu+ install) qua Plugins → Add New.
- Vào Settings → WP Mail SMTP → Mailer chọn “Google / Gmail”.
- Tạo Google Cloud project tại console.cloud.google.com.
- Enable Gmail API trong “APIs & Services” của project vừa tạo.
- Tạo OAuth 2.0 Client ID, type “Web application”.
- Authorized redirect URI: copy từ WP Mail SMTP plugin (dạng
https://yourdomain.vn/wp-admin/admin.php?page=wp-mail-smtp). - Copy Client ID + Client Secret vào WP Mail SMTP → Connect.
- From email:
[email protected](cần Workspace) hoặc[email protected]nếu dùng Gmail free.
Test gửi email và verify deliverability
Sau khi connect, vào WP Mail SMTP → Tools → Email Test, gửi 1 email test đến địa chỉ Gmail hoặc Outlook khác. Verify email vào Inbox không vào Spam, check header có “signed-by: gmail.com” hoặc dòng tương tự.
Nếu email vào Spam, check lại step 5 redirect URI và domain verify trong Google Cloud Console. Lỗi thường gặp là redirect URI có dấu cách thừa hoặc thiếu trailing slash — copy paste y nguyên từ plugin, không gõ tay.
Cách 2 — SendGrid (100 free/ngày, scale tốt)
Phù hợp shop muốn scale lên trên 50K email/tháng và có template email custom phức tạp. SendGrid 100 email/ngày miễn phí, 19,95 USD/tháng cho 50K, 89,95 USD/tháng cho 100K.
Setup nhanh hơn Gmail OAuth vì chỉ cần API key.
Tạo SendGrid account và API key
Đăng ký sendgrid.com với email business của shop, hoàn thành verification email + phone. Vào Settings → API Keys → Create API Key, chọn permission “Full Access” hoặc “Restricted Access → Mail Send only” để an toàn hơn.
Copy API key ngay khi tạo vì chỉ hiển thị 1 lần — lưu password manager hoặc note tạm. Nếu mất phải tạo key mới và disable key cũ, không khôi phục được key đã mất.
Verify domain và connect WP Mail SMTP
SendGrid → Settings → Sender Authentication → Authenticate Your Domain. Thêm 3 CNAME records vào DNS (SendGrid auto-generate cho domain shop).
Đợi propagate 24-48 giờ rồi quay lại verify.
Sau verify domain, vào WP Mail SMTP → Mailer chọn “SendGrid” → paste API key + From email khớp domain đã verify. Test gửi email qua Tools → Email Test để chắc chắn config đúng.
Cách 3 — Brevo (Sendinblue) — recommend cho shop VN
Brevo (rebrand từ Sendinblue) có UI tiếng Việt và 300 email/ngày miễn phí. Tốt nhất cho shop trung bình VN cần support local.
Setup tương tự SendGrid: đăng ký brevo.com, lấy API key, verify domain qua DNS records, paste vào WP Mail SMTP → Mailer “Brevo”.
Brevo so với SendGrid — lợi điểm và trade-off
Brevo và SendGrid cùng phân khúc email transactional, nhưng có khác biệt rõ về free tier và support. Bảng dưới giúp shop chọn đúng theo profile.
- Free tier: Brevo 300 email/ngày miễn phí, SendGrid chỉ 100. Brevo lợi gấp 3 cho shop nhỏ chưa scale.
- UI và support: Brevo có UI tiếng Việt, support qua chat tiếng Việt. SendGrid chỉ English, support chậm hơn cho khách VN.
- Scale enterprise: SendGrid stable hơn ở trên 100K email/tháng, analytics depth tốt hơn. Brevo kém hơn về reporting nâng cao.
- Pricing: Brevo theo email count, dự đoán được. SendGrid tier-based đôi khi đắt hơn nếu shop có spike traffic.
Setup DNS — DKIM, SPF, DMARC để email vào inbox
Đây là bước quan trọng nhất quyết định deliverability. Sau khi config SMTP plugin, domain cần 3 DNS records để Gmail và Outlook trust email từ shop.
Setup mất 30 phút cộng chờ propagate 24-48 giờ.
SPF (Sender Policy Framework) — list servers được phép gửi
SPF là TXT record liệt kê IP và server được phép gửi email từ domain. Nếu shop dùng nhiều provider cùng lúc (vd Gmail cho admin + SendGrid cho customer), gộp cả 2 vào 1 record SPF duy nhất.
# DNS record TYPE: TXT
# Host/Name: @ (hoặc yourdomain.vn)
# Value:
v=spf1 include:sendgrid.net include:_spf.google.com ~all
# Nếu dùng nhiều provider cùng lúc (Gmail + SendGrid):
v=spf1 include:_spf.google.com include:sendgrid.net ~all
DKIM (DomainKeys Identified Mail) — public key verify chữ ký
DKIM là TXT record chứa public key. Provider tự động generate trong dashboard, shop chỉ copy paste vào DNS.
Mỗi provider thường có 1-2 record DKIM riêng — phải add đủ cả 2 để pass đúng.
# DNS record TYPE: TXT
# Host/Name: mail._domainkey.yourdomain.vn
# Value: (provider provide, dạng v=DKIM1; k=rsa; p=MIGfMA0...)
# Record 2:
# Host/Name: mail2._domainkey.yourdomain.vn
# Value: v=DKIM1; k=rsa; p=MIIBIjANBg...
DMARC — policy khi SPF/DKIM fail
DMARC là TXT record định nghĩa policy khi email không pass SPF hoặc DKIM. Bắt đầu với policy quarantine (vào Spam thay vì reject hoàn toàn) để monitor trước, sau 30 ngày không có issue mới tăng lên reject.
# DNS record TYPE: TXT
# Host/Name: _dmarc.yourdomain.vn
# Value:
v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1
# Sau 30 ngày monitor không có issue, tăng lên reject:
v=DMARC1; p=reject; rua=mailto:[email protected]
Test deliverability qua mail-tester.com
Sau khi setup 3 records, đợi 24-48 giờ DNS propagate. Test deliverability qua mail-tester.com — gửi 1 email từ shop đến địa chỉ test mail-tester cấp, xem score.
Target 9/10 hoặc 10/10. Score dưới 7/10 có chỗ chưa pass — đọc breakdown của tool để fix từng item.
Lỗi thường gặp nhất là DKIM chưa propagate hết và DMARC policy quá strict.
Customize email template và 5 lỗi thường gặp
WooCommerce email default đơn giản gồm chữ và bảng đơn. Nâng cao bằng 3 cách: override template trong child theme, dùng plugin builder drag-drop, hoặc thuê designer thiết kế HTML email theo brand.
3 cách customize template và 5 lỗi cần tránh
Mỗi cách customize có trade-off riêng về flexibility và effort. Chọn cách phù hợp với năng lực dev và ngân sách shop để tránh chuyển đổi giữa các cách sau này.
- Override trong child theme: copy
plugins/woocommerce/templates/emails/sangyour-theme/woocommerce/emails/rồi sửa HTML. Cần dev skill PHP, kiểm soát toàn diện nhưng risk khi WooCommerce update. - Plugin Email Customizer for WooCommerce: drag-drop builder, không cần code. Free version đủ cho shop trung bình.
- Plugin Kadence WooCommerce Email Designer: match style theme Kadence hoặc Astra, miễn phí và dễ setup.
- Lỗi email vào Spam dù đã setup SMTP: thiếu SPF/DKIM/DMARC trong DNS hoặc setup sai. Check lại 3 TXT records qua MXToolbox.com.
- Lỗi email gửi 2 lần: conflict 2 plugin SMTP cùng hook vào wp_mail. Disable 1 plugin, chỉ giữ WP Mail SMTP active.
Câu hỏi thường gặp
WP Mail SMTP free vs Pro — khác gì?
Free version đủ cho 90% shop nhu cầu cơ bản: SMTP Gmail/Outlook/SendGrid/Brevo, log email, test gửi. Pro 49 USD/năm thêm vài tính năng enterprise.
Pro mở thêm Amazon SES, Microsoft 365 OAuth, email log search nâng cao, và alerts khi email fail. Free version đáp ứng nhu cầu shop trung bình — chỉ nâng cấp khi shop scale lớn hoặc cần audit deliverability sâu.
Có cần setup DKIM/SPF/DMARC bắt buộc không?
Có nếu muốn email vào inbox, không vào spam. Gmail và Outlook từ 2024 require DMARC cho domain gửi email bulk — không có DMARC tự động xếp vào spam.
Setup mất 30 phút và kết quả deliverability rate tăng từ khoảng 60% lên 95%+. Đây là việc đáng đầu tư nhất trong toàn bộ stack email — bỏ qua bước này coi như email gửi đi 40% không tới khách.
SendGrid vs Brevo vs Mailgun — chọn cái nào?
3 provider cùng phân khúc nhưng có thế mạnh riêng. Chọn theo quy mô shop và mức độ technical của team.
- SendGrid: enterprise, US-focused, scale tốt nhất ở trên 100K email/tháng.
- Brevo: VN/EU friendly, có UI tiếng Việt, pricing transparent.
- Mailgun: developer-friendly, API mạnh nhất.
Cho shop VN small-mid chọn Brevo. Shop scale trên 100K email/tháng chọn SendGrid.
Shop có dev mạnh cần custom flow phức tạp chọn Mailgun.
Email từ shop gửi đến khách Yahoo/Hotmail bị bounce — fix sao?
Yahoo và Hotmail nghiêm hơn Gmail về spam check, đặc biệt với domain mới hoặc IP chưa có reputation. Cần check 4 điểm để fix.
- DKIM + SPF + DMARC: đầy đủ và pass qua mail-tester.com.
- Subject line: không có spam keyword như “Free”, “Sale 99%”, “Urgent”.
- IP blacklist: check IP gửi không trong blacklist tại mxtoolbox.com.
- From address: khớp đúng domain đã verify với provider.
Nếu vẫn bounce sau khi check 4 điểm trên, contact support nhà cung cấp SMTP để xin dedicated IP hoặc warmup IP.
Có cần plugin email log riêng không?
Có nếu cần debug. Plugin “WP Mail Logging” miễn phí hoặc “Email Log” giúp xem email nào đã gửi, content, status delivery, lỗi cụ thể.
Quan trọng khi khách báo “không nhận được confirm” — kiểm tra log thay vì đoán. Đa số case là email đã gửi thành công nhưng vào spam folder hoặc khách type sai email address khi đặt hàng.
Đọc tiếp các bài liên quan
Email transactional là 1 layer của shop hoàn chỉnh. Để cover toàn bộ setup VN, còn cần cấu hình tiền tệ, thuế và việt hoá ngôn ngữ.
Các bài dưới đây cùng cụm WooCommerce setup giúp khép kín:
- Cài WooCommerce từ A-Z trong 6 bước cho shop Việt — nền tảng để áp email setup này lên.
- Cấu hình tiền VND cho WooCommerce — giá trong email confirm hiển thị đúng format VN.
- Cấu hình thuế VAT cho WooCommerce — invoice gửi qua email có VAT chuẩn.
- Việt hoá WooCommerce hoàn toàn — email template tiếng Việt thuần và chuẩn.
Cần đội Web22 setup SMTP turnkey, DNS DKIM/SPF/DMARC và email template custom theo brand, xem chi tiết Dịch vụ thiết kế WooCommerce trọn gói tại Web22 — báo giá rõ ràng theo phạm vi, không phát sinh sau khi ký hợp đồng.


