Chào anh em! Khách đặt hàng xong không nhận được email xác nhận, bấm “Quên mật khẩu” cũng không thấy thư đâu, form liên hệ gửi đi mà hộp thư mình trống trơn. Phần lớn là do WordPress gửi mail bằng hàm mail() của PHP: nhiều hosting tắt hàm này, hoặc thư gửi ra bị Gmail đẩy thẳng vào Spam vì không có xác thực.

Cách chắc ăn là cho WordPress gửi mail qua tài khoản Gmail bằng plugin WP Mail SMTP. Bài này mình viết lại toàn bộ vào tháng 10/2026, làm thật từng bước trên giao diện Google Cloud mới (Google Auth Platform) và WP Mail SMTP 4.10.2. Có hai cách: Gmail API (mình khuyên dùng) và mật khẩu ứng dụng (để ở cuối bài).
Nên chọn Gmail API hay mật khẩu ứng dụng?
Gmail API mất khoảng 15 phút lần đầu vì phải tạo project trên Google Cloud. Đổi lại, website không giữ mật khẩu nào của Gmail, chỉ giữ một quyền gửi mail mà anh em thu hồi được bất cứ lúc nào. Đổi mật khẩu Google cũng không cần cấu hình lại website.
Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.
Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino hosting với mã giảm giá độc quyền lên tới 40%. Xem tại đây
- iNet
- Nước ngoài thì Vultr
Mật khẩu ứng dụng làm 3 phút là xong, nhưng tài khoản phải bật xác minh 2 bước, và lần nào đổi mật khẩu Google thì Google thu hồi luôn mật khẩu ứng dụng, mail website sẽ ngừng gửi cho tới khi anh em tạo cái mới. Chính trang hướng dẫn của Google cũng ghi không khuyến khích dùng mật khẩu ứng dụng.
Cả hai cách đều gửi bằng chính tài khoản Gmail nên chung một giới hạn: Gmail cá nhân bị khoá gửi tạm thời nếu gửi quá 500 email trong một ngày (giới hạn gửi của Gmail). Website bán hàng vài chục đơn mỗi ngày thì dư sức. Gửi bản tin hàng nghìn người thì nên dùng dịch vụ gửi email chuyên dụng.
Chuẩn bị trước
- ✅ Cài và kích hoạt plugin WP Mail SMTP: vào Plugin → Cài mới, tìm “WP Mail SMTP”, bấm Cài đặt rồi Kích hoạt. Bản miễn phí đã có mailer Google / Gmail.
- ✅ Một tài khoản Gmail dùng để gửi mail cho website, nên là hộp thư riêng của shop.
- ✅ Website chạy trên tên miền thật và có trang chính sách quyền riêng tư (WordPress tạo sẵn trang Privacy Policy, chỉ cần xuất bản). Google cần hai thứ này ở bước Publish app.
Cách 1: cấu hình SMTP Gmail bằng Gmail API
Cách này gồm 4 bước giống trong video: bước 1 tới 3 làm trên Google Cloud, bước 4 làm trong WordPress. Trước đó có một bước chuẩn bị nhỏ trong WP Mail SMTP, cuối cùng là gửi thử. Mở sẵn hai tab trình duyệt cho đỡ phải tìm lại.
Chuẩn bị: chọn Google / Gmail trong WP Mail SMTP
Vào WP Mail SMTP → Settings. Nếu plugin mở Setup Wizard thì bấm “Go back to the Dashboard” để vào trang Settings thường. Kéo xuống mục Mailer, chọn ô Google / Gmail.

Phần Google / Gmail hiện ra ba ô: Client ID, Client Secret và Authorized redirect URI. Ô thứ ba plugin điền sẵn https://connect.wpmailsmtp.com/google/, bấm nút copy bên cạnh để chép. Hai ô đầu để trống, lát nữa lấy từ Google Cloud về dán vào. Nút One-Click Setup là tính năng của bản Pro, bản miễn phí làm theo các bước dưới đây.

Bước 1: tạo project và bật Gmail API
- Mở console.cloud.google.com, đăng nhập đúng tài khoản Gmail sẽ dùng để gửi mail.
- Bấm ô chọn project trên thanh trên cùng, chọn New project.
- Đặt Project name dễ nhận ra, ví dụ “WordPress SMTP”, để nguyên Parent resource là No organisation rồi bấm Create.
- Tạo xong, bấm Select project trong thông báo để chuyển sang project mới. Thanh trên cùng phải hiện đúng tên project vừa tạo.

- Mở menu ☰ → APIs and services → Library, gõ “Gmail API” vào ô tìm kiếm, bấm vào thẻ Gmail API.
- Bấm Enable. Trang chuyển sang API/Service details với Status là Enabled là được.

Bước 2: cấu hình màn hình xin quyền và Publish app
Ở menu bên trái của APIs and services, bấm OAuth consent screen. Google chuyển sang Google Auth Platform và báo “Google auth platform not configured yet”, bấm Get started. Form gồm bốn bước:
- Ở bước App Information, điền App name (ví dụ “WordPress SMTP”), chọn User support email là Gmail của bạn rồi bấm Next.
- Ở bước Audience, chọn External rồi bấm Next. Tài khoản @gmail.com cá nhân chỉ chọn được External. Internal dành cho tài khoản Google Workspace có tổ chức.
- Ở bước Contact Information, gõ email nhận thông báo từ Google, bấm Enter rồi Next.
- Ở bước Finish, tích ô “I agree to the Google API services user data policy”, bấm Continue rồi Create.



Điền Branding rồi bấm Publish app
Nhiều bài hướng dẫn bỏ qua bước này, nên mình gặp khá nhiều ca “cấu hình xong được một tuần thì website lại không gửi được mail”. App mới tạo nằm ở trạng thái Testing. Theo tài liệu OAuth của Google, app External đang Testing chỉ được cấp quyền có hạn 7 ngày. Hết 7 ngày, WP Mail SMTP báo lỗi invalid_grant và ngừng gửi mail. Chuyển app sang In production là hết chuyện này.
Mở mục Audience sẽ thấy nút Publish app đang mờ, kèm dòng nhắc phải hoàn thiện trang Branding trước. Vào mục Branding, điền thêm:
- Ô Application home page điền trang chủ website, ví dụ
https://tenmien.com/. - Ô Application privacy policy link điền link trang chính sách quyền riêng tư.
- Ô Application Terms of Service link điền link trang điều khoản (nếu có).
- Mục Authorised domains bấm Add domain, gõ tên miền gốc như
tenmien.com. Bỏ qua bước này thì Google báo lỗi “Missing domain”.
Bấm Save, quay lại Audience, bấm Publish app rồi Confirm trong hộp “Push to production?”. Publishing status đổi thành In production là xong. Không cần nộp app cho Google xác minh, vì app chỉ dùng cho tài khoản Gmail của chính bạn.



Bước 3: tạo OAuth client lấy Client ID, Client Secret
- Vào mục Clients, bấm + Create client.
- Application type chọn Web application, Name đặt tuỳ ý (ví dụ “WP Mail SMTP”).
- Ở Authorised redirect URIs bấm Add URI, dán đường dẫn đã chép ở phần chuẩn bị:
https://connect.wpmailsmtp.com/google/. Dán đủ cả dấu/cuối, thiếu một ký tự là lỗiredirect_uri_mismatch. - Bấm Create. Google ghi chú thay đổi có thể mất từ 5 phút tới vài giờ mới có hiệu lực, nên nếu bước sau báo lỗi redirect thì đợi một lúc rồi thử lại.

🚨 Hộp OAuth client created hiện ra với Client ID và Client secret. Từ năm 2025, Google chỉ cho xem và tải Client secret đúng một lần, lúc vừa tạo. Hãy bấm biểu tượng copy để chép cả hai, hoặc bấm Download JSON để lưu lại, xong mới bấm OK. Lỡ đóng hộp này mà chưa chép thì vào client đó bấm Add secret để tạo secret mới.

Bước 4: kết nối WP Mail SMTP với tài khoản Google
- Quay lại WP Mail SMTP, dán Client ID và Client Secret, bấm Save Settings.
- Mục Authorization hiện nút Allow plugin to send emails using your Google account, bấm vào.
- Chọn tài khoản Gmail đã tạo project ở trên.
- Google báo “Google chưa xác minh ứng dụng này”. Đây là màn hình bình thường vì app do chính bạn tạo và chưa nộp xác minh. Bấm Nâng cao rồi Đi tới wpmailsmtp.com (không an toàn).
- Màn hình cấp quyền liệt kê quyền đọc, soạn, gửi email Gmail. Bấm Tiếp tục.



Google chuyển về WordPress với thông báo “You have successfully linked the current site with your Google API project”. Mục Authorization giờ ghi Connected as kèm địa chỉ Gmail, cạnh nút Remove OAuth Connection (dùng khi muốn đổi sang tài khoản Google khác).

Kéo lên đầu trang Settings, ô From Email nên là chính địa chỉ Gmail vừa kết nối và để Force From Email ở ON. Muốn hiện địa chỉ khác (ví dụ email theo tên miền) thì địa chỉ đó phải được thêm vào mục “Gửi thư bằng địa chỉ” trong cài đặt Gmail trước, nếu không plugin tự thay về địa chỉ Gmail. Ô From Name điền tên shop để khách nhận ra thư.

Gửi email thử
Vào WP Mail SMTP → Tools, tab Email Test, gõ một địa chỉ nhận vào ô Send To rồi bấm Send Email. Hiện “Test email sent successfully!” và thư nằm trong Hộp thư đến là website đã gửi được mail qua Gmail.

Cách 2: dùng mật khẩu ứng dụng Gmail qua SMTP
Cách này hợp khi anh em cần chạy ngay, hoặc hosting chặn kết nối tới Google API. Tài khoản Google phải bật xác minh 2 bước thì mới có mục mật khẩu ứng dụng. Tài khoản bật Chương trình Bảo vệ nâng cao, hoặc tài khoản công ty bị quản trị viên tắt tính năng này, sẽ không tạo được.
- Mở myaccount.google.com/apppasswords. Google thường hỏi lại mật khẩu để xác minh.
- Gõ tên ứng dụng (ví dụ “WordPress SMTP”) rồi bấm Tạo.
- Google hiện mật khẩu 16 ký tự, chia 4 nhóm. Chép ngay, vì bấm Xong là không xem lại được.


Vào WP Mail SMTP → Settings, mục Mailer chọn Other SMTP rồi điền:
- SMTP Host:
smtp.gmail.com - Encryption: TLS (plugin tự đặt SMTP Port 587). Hosting chặn cổng 587 thì chọn SSL, cổng 465.
- Authentication: ON
- SMTP Username: địa chỉ Gmail đầy đủ
- SMTP Password: mật khẩu ứng dụng 16 ký tự, không phải mật khẩu đăng nhập Gmail

Bấm Save Settings rồi gửi thử ở tab Email Test như phần gửi email thử ở trên. Lúc làm bài này mình dán nguyên cả 4 nhóm có dấu cách vào ô SMTP Password, Gmail vẫn nhận và gửi thử thành công.
Lỗi hay gặp và cách xử lý
- ⚠️ Báo
redirect_uri_mismatchkhi bấm Allow là do đường dẫn ở Authorised redirect URIs không khớp từng ký tự với ô của plugin, thường thiếu dấu/cuối. Sửa xong đợi vài phút cho Google cập nhật. - ⚠️ Báo
Error 403: access_deniednghĩa là app còn ở Testing và tài khoản đang đăng nhập chưa nằm trong danh sách Test users. Làm lại phần Publish app ở bước 2. - ⚠️ Đang gửi bình thường bỗng báo
invalid_grantthì hoặc app còn Testing (quyền hết hạn sau 7 ngày), hoặc quyền đã bị thu hồi trong tài khoản Google. Publish app, bấm Remove OAuth Connection rồi bấm Allow lại. - ⚠️ Báo
invalid_clientthường do dán Client ID hoặc Client Secret bị thừa dấu cách hay thiếu ký tự. Dán lại cho đúng, mất secret thì tạo secret mới. - ⚠️ Cách 2 báo “Username and Password not accepted” là do dùng mật khẩu đăng nhập Gmail thay vì mật khẩu ứng dụng, hoặc vừa đổi mật khẩu Google nên mật khẩu ứng dụng cũ bị thu hồi. Tạo mật khẩu ứng dụng mới rồi dán lại.
- ⚠️ Thư gửi đi nhưng vào Spam khi From Email là địa chỉ theo tên miền riêng: tên miền đó cần bản ghi SPF, DKIM đúng. Muốn chắc ăn thì để From Email là chính địa chỉ Gmail.
Anh em làm theo mà vẫn kẹt ở bước nào thì comment kèm ảnh chụp thông báo lỗi (che email đi), mình xem giúp. Website bán hàng cần gửi thêm SMS, Zalo cho khách thì xem các plugin WordPress của DevVN.





