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 email. Đâ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. Vì vậy, 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%.

Các plugin SMTP Mail

Để 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

Lưu ý: Các plugin trên vẫn hoạt động tốt nếu tắt mật khẩu 2 lớp nhé! Do đó nếu bạn không bật tính 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. Tất nhiên, vì lý do bảo mật nên tôi khuyên 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à cài plugin: Post SMTP (được đề xuất) hoặc Gmail SMTP.

Giới thiệu về plugin Post SMTP Mailer/Email Log

Vào tháng 10 năm 2017, plugin SMTP phổ biến nhất Postman SMTP đã bị xóa khỏi kho lưu trữ WordPress do lỗ hổng XSS. Tin tức này lan truyền nhanh như một cơn gió bởi tại thời điểm đó plugin này đang được hàng trăm nghìn website sử dụng.

Một số nhà nghiên cứu bảo mật đã cố gắng liên hệ với tác giả của plugin nhưng không được. Yehuda Hassine, một nhà phát triển WP là fan ruột của Post SMTP đã quyết định fix lỗi bảo mật này, đồng thời tung ra bản cập nhật mới 2 ngày sau đó. Yehuda đổi tên cho plugin thành Post SMTP Mailer / Email Log và chia sẻ mã nguồn trên Github.

Cho đến hiện tại, Post SMTP Mailer/Email Log là plugin gửi mail được đánh giá (vote 5 sao) cao nhất trên Wordpress. Plugin này không giống như hầu hết các plugin SMTP khác vì nó hỗ trợ 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.

Hướng dẫn cài đặt plugin Post SMTP Mailer/Email Log

Post SMTP Mailer/Email Log
Plugin Post SMTP Mailer/Email Log

Xem: Hướng dẫn cài đặt 1 Plugin cho WordPress.

Sau khi cài đặt và kích hoạt plugin xong, bạn đến phần Settings để cấu hình.

Cài đặt Post SMTP
Cài đặt Post SMTP

Click tiếp Start The Wizard để bắt đầu.

Post SMTP Mailer/Email Log

Plugin sẽ hỏi bạn có muốn nhập cấu hình từ một plugin khác không? Cứ để None rồi Next.

Post SMTP Mailer/Email Log

Bạn điền thông tin người gửi:

Post SMTP Mailer/Email Log
Điền thông tin người gửi

Plugin sẽ tự động tìm máy chủ mail:

Post SMTP Mailer/Email Log
Thông tin máy chủ mail

Bạn để mặc định như đề xuất của plugin rồi Next.

Post SMTP Mailer/Email Log
Nếu sử dụng Gmail thì bạn chọn như hình

Tiếp tục Next, bạn đến bước xác minh ứng dụng:

Post SMTP Mailer/Email Log

Tạm thời dừng ở đây đã, bạn cần tạo ứng dụng Google để có Client ID và Client Secret.

Hướng dẫn tạo ứng dụng Google để gửi mail

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
OAuth client ID

Bước 7: Click vào nút Create credentials và chọn 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 ở phần Name. Quay lại trang cài đặt plugin Post SMTP Mailer/Email Log ở bước trên để lấy link Authorized JavaScript origins và Authorized redirect URI khai báo cho ứng dụng:

Tạo Client ID

Bước 11: Bạn sẽ nhận được thông tin ID và khóa bảo mật:

OAuth client
Post SMTP Mailer/Email Log

Bước 12: Dán Client IDClient Secret vào phần cài đặt plugin Post SMTP Mailer/Email Log ở bước trên.

Sau đó Next cho đến Finish thì thôi.

Phân quyền cho ứng dụng gửi mail

Quay lại trang cài đặt, bạn click vào Grant permission with Google

Post SMTP Mailer/Email Log

Bạn sẽ được chuyển đến Google. Đăng nhập tài khoản Gmail mà bạn đã tạo ứng dụng:

Đăng nhập vào Gmail
Đăng nhập vào Gmail
Cấp quyền cho ứng dụng
Cấp quyền cho ứng dụng

Gửi mail test thử xem sao

Tại phần cài đặt, bạn click Send a Test Email

sent test email

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

Email test

Giới hạn của Gmail

  • Gmail miễn phí thì mỗi ngày bạn chỉ được gửi tối đa 500 email;
  • 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ó 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 không cần khai báo mật khẩu nên khả năng bảo mật tuyệt đối.

Theo dõi bài viết
Nhận thông báo
guest
5 Bình luận
mới nhất
cũ nhất
Inline Feedbacks
Xem tất cả bình luận
5
0
Gửi bình luận của bạn về bài viết này.x