Hướng dẫn gửi mail trong WordPress sử dụng Gmail

Tính năng gửi mail mặc định của WordPress sử dụng hàm mail() của PHP nên thư gửi đi rất dễ bị rơi vào spam hoặc một số nhà cung cấp hosting chặn tính năng này vì sợ bị spam. Đây là vấn đề rất lớn đối với những website bán hàng làm trên nền tảng WordPress vì khách sẽ không thể nhận được email thông báo đơn hàng, không thể nhận các tin khuyến mãi, giảm giá,… dẫn đến hiệu quả kinh doanh giảm đi rõ rệt. Trong bài viết này tôi sẽ hướng dẫn các bạn cách gửi mail trong WordPress sử dụng SMTP của Gmail đảm bảo thành công 100%.

Để sử dụng tính năng SMTP của Gmail bạn cần cài thêm plugin, có rất nhiều plugin làm được việc này, bạn có thể tham khảo một số plugin phổ biến ở đây:

1. WP Mail SMTP by WPForms (đây là plugin được nhiều người dùng nhất)

2. Easy WP SMTP

3. SMTP Mailer

Tuy nhiên, trong bài viết này tôi không hướng dẫn các bạn sử dụng các plugin trên vì nếu Gmail được bật chức năng mật khẩu 2 lớp (xác minh qua điện thoại) thì các plugin đó không hoạt động được. Lý do là Google chặn kết nối khi phát hiện kết nối đó không an toàn.

Mặc dù tôi đã xem rất nhiều bài hướng dẫn trên mạng hướng dẫn tạo mật khẩu ứng dụng để sử dụng SMTP nhưng vẫn không thành công bởi khả năng bảo mật của Google quá cao. Khi phát hiện thấy sự cố đăng nhập khả nghi thì Google sẽ gửi email thông báo cho bạn với nội dung cảnh báo như sau:

Gmail chặn ứng dụng kém an toàn

Gmail chặn ứng dụng kém an toàn

Xin nhắc lại: Tôi sử dụng VPS và bật xác minh mật khẩu 2 lớp nên bị Google chặn không cho plugin kết nối qua SMTP. Nếu tôi tắt mật khẩu 2 lớp thì sẽ sử dụng được bình thường nhé.! Do đó nếu bạn không bật chức năng xác minh qua điện thoại thì plugin nào hỗ trợ SMTP cũng sử dụng được bình thường, tuy nhiên vì lý do bảo mật nên tôi khuyên các bạn nên bật bởi vì chúng ta vẫn có cách để sử dụng được SMTP của Gmail.

Đó là sử dụng plugin: Gmail SMTP

Plugin này không giống như hầu hết các plugin SMTP khác vì nó sử dụng giao thức OAuth 2.0 để cho phép truy cập Gmail API – có nghĩa là một hệ thống đăng nhập an toàn hơn và người dùng sẽ không phải nhập bất kỳ tài khoản hoặc mật khẩu nào.

Bước 1: Bạn truy cập vào console.developers.google.com và đăng nhập vào tài khoản Gmail sẽ sử dụng trong WordPress.

Bước 2: Tạo một dự án mới, đặt tên như thế nào tùy bạn (tôi đặt là Use SMTP Gmail):

SMTP Gmail

Tạo dự án SMTP Gmail

Bước 3: Mở dự án vừa tạo, kích hoạt API bằng cách click vào Enable API:

enable api

Kích hoạt sử dụng API

Bước 4: Bạn tìm đến phần G Suite APIs, chọn Gmail API:

gmail api

Bước 5: Tiếp tục kích hoạt Gmail API bằng cách click vào Enable:

enable gmail api

Bước 6: Để tạo một chứng chỉ ủy quyền cho phép sử dụng API, bạn chuyển qua tab Credentials:

credentials

Bước 7: Click vào nút Create credentials và chọn OAuth client ID:OAuth client ID

Bước 8: Click vào nút Configure consent screen:

configure consent screen

Bước 9: Bạn điền tên ở phần Product name (như tôi chọn là SMTP Gmail for dovanphuong.com), các ô còn lại tùy bạn khai báo hoặc bỏ trống, sau đó click Save để lưu lại:

OAuth consent screen

Bước 10: Sau khi Save thì cửa sổ tạo ID hiện ra, bạn chọn Web application và đặt tên cho ID ở phần Name, sau đó vào phần cấu hình plugin Gmail SMTP (trong phần Settings của WP-Admin) để lấy link Authorized Redirect URI:

Authorized Redirect URI

Dán vào phần Authorized redirect URIs trên cửa sổ tạo ứng dụng ID và click Create:

Tạo client ID

Bước 11: Bạn sẽ nhận được thông tin ID và khóa bảo mật, copy lại để sử dụng trong cài đặt plugin.

OAuth client

Bước 12: Cấu hình trong plugin Gmail SMTP:

  • Client ID: Bạn điền cái Client ID ở bước 11 vào đây.
  • Client Secret: Bạn điền cái mã bí mật ở bước 11 vào đây.
  • OAuth Email Address: Là địa chỉ email bạn sử dụng để tạo Client ID (ví dụ: admin@dovanphuong.com)
  • From Email Address: Là địa chỉ email sẽ hiển thị khi người dùng nhận được email của bạn. Thực tế bạn có thể điền một email khác với email ở trên nhưng độ tin cậy không cao cho nên email có thể bị rơi vào SPAM. Lý do bởi vì email hiển thị không giống với email gửi đi (là OAuth Email) nên hệ thống có thể hiểu nhầm rằng bạn đang lừa khách hàng.
  • From Name: Tên hiển thị (tùy bạn đặt)
  • Type of Encryption: Kiểu mã hóa mặc định là TLS nhưng bạn cũng có thể chọn SSL (nên sử dụng TLS).
  • SMTP Port: Nếu kiểu mã hóa bạn chọn là TLS thì port là 587, nếu là SSL thì port 465.
Cấu hình Gmail SMTP Plugin

Cấu hình Gmail SMTP Plugin

Click Save Changes để lưu các cài đặt.

Bước 13: Sau khi lưu bạn sẽ nhận được thông báo: Gmail SMTP plugin cannot send email until you enter your credentials in the settings and grant access to your web application ở đầu trang. Bạn kéo xuống cuối trang sẽ thấy Grant Permission (dưới nút Save Changes):

Grant Permission

Click vào nút Grant Permission để kết nối đến tài khoản Google.

Cho phép kết nối Gmail

Click vào nút Cho Phép để đồng ý việc kết nối Gmail

Bước 14: Việc cấu hình đã xong, bạn sẽ nhận được thông báo Access Granted Successfully! với biểu tượng SMTP Status đã được bật màu xanh:

gmail smtp plugin

Bước 15: Bạn chuyển qua tab Test Email và kiểm tra thử xem plugin Gmail SMTP đã hoạt động tốt chưa.

test gmail smtp

Kết quả nếu nhận được email tức là thành công!

Giới hạn của Gmail:

  • Với tài khoản Gmail miễn phí thì mỗi ngày bạn chỉ được gửi tối đa 500 email (tức là tối đa 500 người nhận).
  • Với tài khoản Gmail trả phí (sử dụng tên miền riêng) thì được gửi tối đa 2000 email mỗi ngày.

Nếu 1 ngày bạn gửi đến giới hạn số lượng email thì sẽ nhận được cảnh báo của Google và bạn phải chờ sang ngày mới để tiếp tục gửi email. Tuy nhiên với quy mô của một blog hoặc website bán hàng bình thường thì chẳng bao giờ bạn sử dụng đến giới hạn của tài khoản Gmail cho dù đó là tài khoản miễn phí chứ chưa nói đến tài khoản Gmail sử dụng tên miền riêng.

Ví dụ như blog dovanphuong.com của tôi có bật chức năng bình luận tự do và cho phép mọi người đăng ký nhận thông báo qua email khi có bình luận mới hoặc có người phản hồi bình luận của họ. Một ngày liệu có được bao nhiêu người tham gia bình luận? Biết đến bao giờ mới đạt đến con số 500 bình luận/ngày đây?

Tóm lại, bạn cũng có thể tạo riêng 1 tài khoản Gmail sử dụng cho việc gửi mail trong WordPress, hoặc tắt tính năng bảo mật qua điện thoại thì mọi thứ sẽ trở nên đơn giản hơn rất nhiều. Bất cứ plugin hỗ trợ SMTP nào cũng sử dụng được Gmail nhưng khả năng bảo mật không cao, nhất là có nhiều plugin còn không mã hóa mật khẩu trong phần cấu hình vì thế chỉ cần đăng nhập được vào tài khoản Admin là có thể nhìn thấy địa chỉ email và password của Gmail, như thế rất dễ bị lộ hoặc bị hack mất Gmail.

Làm theo hướng dẫn trong bài viết này tuy hơi mất công nhưng bạn vừa có thể bật tính năng mật khẩu 2 lớp của Gmail, trong phần cấu hình plugin lại không phải khai báo mật khẩu nên khả năng bảo mật tuyệt đối.

Chúc bạn thành công.!

PHÂN BÌNH LUẬN

Nhận thông báo
avatar
Bếp Hải Nam

Cám ơn anh, em cũng bị chặn đăng nhập tìm hoài hướng dẫn trên mạng mà có mỗi bài này của anh làm được.

Phan Hoàng Chơn
Phan Hoàng Chơn

Văn Phương ơi cho mình hỏi, trong moodle có làm được tương tự như trong wordpress không vậy?

wpDiscuz