Cách khắc phục sự cố WordPress không gửi được email

Tác giả Network Engineer, T.Chín 23, 2021, 02:38:52 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách khắc phục sự cố WordPress không gửi được email


Một trong những câu hỏi thường gặp nhất trên các diễn đàn là làm thế nào để sửa lỗi WordPress không gửi được email.
Nhiều người dùng ở cấp độ mới bắt đầu của mình hỏi mình tại sao plugin biểu mẫu liên hệ của họ không gửi email hoặc tại sao họ không thấy bất kỳ thông báo WordPress nào.

Trong bài viết này, mình sẽ hướng dẫn bạn cách khắc phục sự cố WordPress không gửi được email, để trang web của bạn có thể gửi email một cách đáng tin cậy hơn và vượt qua thư mục spam.

1. Tại sao bạn không nhận được email từ trang web WordPress của mình?

Lý do phổ biến nhất khiến email bị thiếu là do máy chủ lưu trữ WordPress của bạn không được cấu hình đúng cách để sử dụng hàm PHP mail().

Ngay cả khi máy chủ của bạn được cấu hình để sử dụng, nhiều nhà cung cấp dịch vụ email như Gmail và những nhà cung cấp dịch vụ khác sử dụng nhiều công cụ khác nhau để giảm spam email. Các công cụ này cố gắng phát hiện rằng một email thực sự đến từ vị trí mà nó được khai báo không. Các email được gửi bởi các trang web WordPress thường không đạt được bài kiểm tra này.

Điều này có nghĩa là khi một email được gửi đi từ trang web WordPress của bạn ( plugin biểu mẫu liên hệ, thông báo quản trị, v.v.), nó thậm chí có thể không lọt vào thư mục spam của người nhận chứ đừng nói đến hộp thư đến.

Đây là lý do tại sao mình khuyên bạn không nên sử dụng WordPress để gửi bản tin email của bạn.
Đây cũng là lý do tại sao mình khuyên mọi người nên sử dụng SMTP để gửi email trong WordPress.

2. SMTP là gì?

SMTP (Giao thức truyền thư đơn giản) là tiêu chuẩn chuyên ngành để gửi email.
Không giống như hàm mail() trong PHP, SMTP sử dụng xác thực thích hợp dẫn đến khả năng gửi email cao.

WordPress có một plugin WP Mail SMTP dùng để cấu hình trang web WordPress của bạn để gửi email bằng SMTP thay vì hàm PHP mail().
Bạn có thể sử dụng nó để kết nối với bất kỳ dịch vụ SMTP phổ biến nào như SendinBlue, Gmail (G Suite), Office365, Amazon SES, v.v.

Như đã nói, chúng ta hãy xem cách khắc phục sự cố WordPress không gửi được email.

3. Cài đặt Plugin WP Mail SMTP.

Dù bạn chọn dịch vụ SMTP nào, bạn cũng cần cài đặt plugin WP Mail SMTP trên trang web của mình. Điều này cho phép bạn chuyển WordPress từ sử dụng chức năng PHP mail () được tích hợp sẵn sang sử dụng dịch vụ SMTP của bạn.

Đầu tiên, cài đặt và kích hoạt plugin WP Mail SMTP. Nếu bạn không chắc chắn về cách thực hiện, hãy xem hướng dẫn từng bước của mình về cách cài đặt plugin WordPress.

Tiếp theo, nhấp vào WP Mail SMTP trong bảng điều khiển WordPress của bạn để cấu hình cài đặt plugin.


Giao diện chính của plugin WP Mail SMTP

Bạn sẽ cần phải bắt đầu bằng cách nhập tên và địa chỉ email doanh nghiệp mà bạn muốn các email trên trang web của mình đến. Đảm bảo rằng bạn sử dụng cùng một địa chỉ email mà bạn sẽ sử dụng cho dịch vụ gửi thư SMTP ở đây.


Giao diện cấu hình gửi email của plugin WP Mail SMTP

Bạn có thể chọn buộc email sử dụng tên và địa chỉ email này, ngay cả khi các plugin khác (như WPForms) có cài đặt khác. WP Mail SMTP sẽ ghi đè cài đặt của các plugin khác.

Sau đó, bạn cần chọn một dịch vụ gửi thư SMTP cho trang web của mình.

Vì lợi ích của hướng dẫn này, mình sẽ thiết lập SMTP bằng Sendinblue. Nếu bạn muốn sử dụng Gmail hoặc Office365, thì mình cũng có hướng dẫn về những điều đó ở phần sau của bài viết này.


Tùy chọn gửi email với SMTP của Sendinblue

Để hoàn tất thiết lập WP Mail SMTP, bạn cần tạo một tài khoản với Sendinblue. Mình sẽ chuyển sang phần tiếp theo và sau đó quay lại hoàn thiện thiết lập trên WP Mail SMTP.

4. Gửi email WordPress bằng Sendinblue.

Sendinblue là một nhà cung cấp dịch vụ email phổ biến. Chúng cho phép bạn gửi một số lượng lớn email với khả năng gửi cao.

Bạn có thể sử dụng Sendinblue để gửi miễn phí tới 300 email mỗi ngày, quá đủ cho hầu hết các trang web nhỏ.
Đây có thể là email từ biểu mẫu liên hệ của bạn, chi tiết tài khoản người dùng mới, email khôi phục mật khẩu hoặc bất kỳ email nào khác được gửi qua trang web WordPress của bạn.

Đầu tiên, bạn cần truy cập trang web Sendinblue để tạo tài khoản. Nhấp vào nút 'Đăng ký miễn phí' để thiết lập tài khoản của bạn.

Sau khi tạo tài khoản, bạn sẽ thấy bảng điều khiển Sendinblue của mình. Nếu bạn không hoàn thành hồ sơ của mình trong giai đoạn thiết lập, bạn sẽ được nhắc làm như vậy tại đây.


Bảng điều khiển của Sendinblue

Còn một bước nữa trên trang web của bạn trước khi bạn có thể tiếp tục thiết lập với Sendinblue.

5. Thiết lập tên miền phụ cho trang web của bạn.

Đầu tiên, bạn cần thiết lập một miền phụ. Đây giống như một phần riêng biệt của trang web của bạn. mình khuyên bạn nên sử dụng   Đăng nhập để xem liên kết.

Lưu ý: Máy chủ lưu trữ WordPress của bạn có thể không cho phép bạn sử dụng thư làm tên miền phụ của mình, đó là lý do tại sao mình cũng đưa tên miền 1 vào đó.

Để thêm miền phụ của bạn, hãy đăng nhập vào tài khoản lưu trữ web của bạn và tìm phần Miền trong bảng điều khiển của bạn.

Vì lợi ích của hướng dẫn này, mình sẽ trình bày cách thực hiện điều đó trên tài khoản lưu trữ mẫu của mình trên Bluehost. Sau khi bạn đăng nhập, hãy chuyển đến Tên miền >> Tên miền phụ.

Sau đó, bạn có thể nhập tên miền phụ của mình và nhấp vào 'Tạo'.


Tạo Subdomain

Nếu bạn đang sử dụng các công ty lưu trữ khác hoặc nếu DNS của bạn được quản lý tại công ty đăng ký tên miền như   Đăng nhập để xem liên kết, Network Solutions hoặc GoDaddy, thì hãy làm theo hướng dẫn tương ứng của họ.

Sau khi bạn đã tạo miền phụ, bạn sẽ cần thêm miền đó vào tài khoản Sendinblue của mình.

6. Thêm miền phụ của bạn vào Sendinblue.

Trong tài khoản Sendinblue của bạn, đi tới 'Cài đặt', sau đó tìm 'Người gửi của bạn' và nhấp vào nút 'Cấu hình':


Cấu hình gửi email trong Sendinblue

Tiếp theo, nhấp vào tab 'Tên miền' và sau đó nhấp vào nút 'Thêm tên miền mới'.


Thêm tên miền trong Sendinblue

Nhập toàn bộ tên miền phụ (ví dụ:   Đăng nhập để xem liên kết) và chọn hộp bên cạnh "Tôi muốn sử dụng tên miền này để ký điện tử vào email của mình (SPF, DKIM, DMARC)".


Thêm Subdomain trong Sendinblue

Tiếp theo, nhấp vào 'Lưu' và bạn sẽ thấy một cửa sổ bật lên với một số bản ghi DNS được liệt kê.
Những dòng mã này cho phép Sendinblue ủy quyền tên miền của bạn.

Mẹo: Đừng lo lắng nếu bạn vô tình đóng cửa sổ bật lên này. Bạn có thể quay lại nó bằng cách nhấp vào nút 'Xác thực Tên miền này' bên cạnh tên miền phụ của bạn:


Xác thực tên miền để cấu hình DNS

Mở tab trình duyệt mới và đăng nhập lại vào tài khoản lưu trữ web của bạn. Bạn cần tìm tên miền của mình và mở các bản ghi DNS.

Trong Bluehost, bạn thực hiện việc này bằng cách đi tới Tên miền >> Tên miền của tôi, sau đó nhấp vào 'Quản lý' bên cạnh tên miền của bạn.

Bạn sẽ cần thêm 3 bản ghi TXT do Sendinblue cung cấp tại đây.

Đầu tiên, cuộn xuống để tìm phần TXT trong các bản ghi DNS của bạn. Nó sẽ trông giống như thế này:


Các bảng ghi TXT DNS trong Bluehost

Sau đó, nhấp vào 'Thêm Bản ghi'.

Hoàn thành việc ghi đầu tiên như sau:

Mã nguồn [Chọn]
Máy chủ: mail._domainkey.mail1
Loại Bản ghi: TXT
TXT Value: Sao chép này từ Sendinblue.
TTL: 1 ngày

Mẹo: Bản ghi Máy chủ lưu trữ có thể được máy chủ lưu trữ web của bạn gọi là Máy chủ hoặc Tên. Thay đổi mail1 nếu bạn đã sử dụng thứ gì đó khác cho miền phụ của mình. Loại bản ghi có thể không được yêu cầu. Giá trị TXT cũng có thể được gọi là dữ liệu TXT: đó là đoạn mã dài đầu tiên trong chi tiết Sendinblue. TTL có thể là 24 giờ hoặc 86400 giây (cả hai đều tương đương với 1 ngày). Nếu bạn đang sử dụng GoDaddy, hãy đặt nó thành 1 giờ.


Khi bạn đã thêm bản ghi đầu tiên, hãy nhấp vào 'Lưu'.

Tiếp theo, bạn cần thêm bản ghi thứ hai. Hoàn thành nó như sau:

Mã nguồn [Chọn]
Máy chủ: mail1
Loại Bản ghi: TXT
TXT Value: v=spf1 include:spf.sendinblue.com mx ~all
TTL: 1 ngày

Sau khi bạn hoàn tất, hãy nhấp vào 'Lưu'.

Sau khi lưu, bạn cần thêm bản ghi thứ ba. Hoàn thành nó như sau:

Mã nguồn [Chọn]
Máy chủ: mail1
Loại Bản ghi: TXT
TXT Value: Sao chép này từ Sendinblue. Đó là đoạn mã thứ ba.
TTL: 1 ngày

Sau khi hoàn tất, hãy tiếp tục và lưu bản ghi đó.

Cảnh báo: Sendinblue cũng có đoạn mã thứ tư cho bản ghi DMARC. Bạn không cần điều này và mình thực sự khuyên bạn nên bỏ qua nó trừ khi bạn có kinh nghiệm với cấu hình DMARC.

Sau khi bạn đã thêm hồ sơ của mình, hãy quay lại Sendinblue. Đối với mỗi bản ghi, hãy nhấp vào nút 'Bản ghi Đã thêm. Vui lòng xác minh nó. ' Có thể mất 24-48 giờ trước khi Sendinblue có thể xác minh hồ sơ của bạn, nhưng thường nhanh hơn nhiều.

Nếu không có gì xảy ra khi bạn nhấp vào nút đó, thì hồ sơ vẫn chưa thể được xác minh. Kiểm tra lại sau và xem chúng đã được xác minh chưa. Sau khi có, bạn sẽ thấy từ 'Đã cấu hình' bên cạnh các bản ghi màu xanh lục:


Bản ghi TXT của Sendinblue DNS sau khi chúng đã được xác minh

Bạn có thể tiếp tục với hướng dẫn này trong khi đợi xác minh diễn ra.

7. Hoàn tất thiết lập WP Mail SMTP để sử dụng Sendinblue.

Quay lại cài đặt WP Mail SMTP của bạn trong bảng điều khiển WordPress của bạn. Bạn đáng lẽ đã nhập Email Người gửi và Tên Người gửi, nhưng nếu không, bạn có thể làm điều đó ngay bây giờ.

Bỏ chọn hộp kiểm 'Return Path' vì tùy chọn này không được Sendinblue sử dụng.

Tiếp theo, nhấp vào 'Sendinblue' cho gửi email của bạn.


Tùy chọn gửi email với SMTP của Sendinblue

Bạn sẽ cần truy cập tài khoản Sendinblue để tìm khóa API của mình. Chỉ cần nhấp vào liên kết bên dưới hộp 'Khóa API' và trang tổng quan tài khoản Sendinblue của bạn sẽ mở ra ở đúng vị trí, trong một tab mới.

Sao chép khóa API v3 từ trang này.


Lấy API từ Sendinblue

Xin chúc mừng. Bây giờ bạn đã thiết lập mọi thứ. Bước cuối cùng là gửi một email kiểm tra để đảm bảo rằng mọi thứ đang hoạt động.

Đi tới tab 'Kiểm tra Email' của WP Mail SMTP và nhập địa chỉ email để gửi email tới. Điều này sẽ mặc định là email quản trị của trang web. Nhấp vào 'Gửi Email'.

Bạn sẽ thấy thông báo 'Kiểm tra email HTML đã được gửi thành công!' Kiểm tra hộp thư đến của bạn để xem liệu nó đã đến chưa. Nó sẽ trông như thế này:


Email thử nghiệm từ WP Mail SMTP

Lưu ý: Nếu tài khoản Sendinblue của bạn chưa được kích hoạt, bạn sẽ nhận được thông báo: [permission_denied]: Unable to send email. Your SMTP account is not yet activated.

8. Các cách thay thế để khắc phục sự cố email WordPress.

Như bạn có thể thấy từ danh sách các tùy chọn gửi email của plugin WP Mail SMTP, bạn không cần phải sử dụng Sendinblue. Mặc dù đó là đề xuất miễn phí hàng đầu của mình, nhưng có những tùy chọn khác mà bạn có thể sử dụng bao gồm Office 365, Gmail / G Suite, Amazon SES, v.v.

8.1. Sử dụng Gmail hoặc G Suite với WP Mail SMTP để sửa email WordPress.

Nếu bạn có tài khoản Gmail hoặc G Suite thì bạn có thể sử dụng tài khoản đó để gửi email của mình. Bạn sẽ không cần nhập chi tiết đăng nhập email của mình trong WordPress khi sử dụng plugin WP Mail SMTP.

Để sử dụng Gmail hoặc G Suite, hãy thiết lập WP Mail SMTP như được hiển thị ở trên, sau đó nhấp vào tùy chọn 'Google' cho gửi email của bạn.

Bạn sẽ cần phải chọn hộp 'Return Path'.
Sau đó, bạn sẽ được yêu cầu nhập 'ID khách hàng' và 'Bí mật khách hàng'. Để có được những chi tiết này, bạn cần tạo một ứng dụng web trong tài khoản Google của mình. Đừng lo lắng nếu điều đó nghe có vẻ hơi khó khăn. Bạn có thể tìm thấy hướng dẫn đầy đủ trong bài viết này về cách sử dụng Gmail để gửi email WordPress của bạn.

Lưu ý: Bạn có thể sử dụng quy trình này với tài khoản Gmail thông thường, nhưng khả năng gửi email của bạn sẽ tốt hơn nhiều nếu bạn đang sử dụng G Suite. Xem hướng dẫn của mình về cách thiết lập địa chỉ email chuyên nghiệp với Gmail và G Suite.

Tuy nhiên, có một số hạn chế chính khi sử dụng Gmail hoặc G Suite.
Một là bạn có thể cần phải liên hệ với máy chủ web của mình để yêu cầu họ cài đặt chứng chỉ phù hợp để chứng chỉ hoạt động.
Một điều khác là nếu bạn thay đổi địa chỉ email trong tương lai, bạn sẽ cần phải thực hiện lại toàn bộ quy trình. Điều này sẽ bao gồm việc tạo một ứng dụng web mới.

8.2. Sử dụng Office 365 / Outlook với WP Mail SMTP để sửa email WordPress.

Nếu bạn sử dụng Microsoft Office 365 hoặc Outlook cho tài khoản email thông thường của mình, thì bạn cũng có thể sử dụng tài khoản đó để gửi email thông qua WordPress. Tuy nhiên, đây không phải là một tùy chọn được khuyến nghị vì nó kém an toàn hơn.

Bạn sẽ cần thiết lập WP Mail SMTP như trên, sau đó nhấp vào tùy chọn 'SMTP khác'. Điều này sẽ mở ra một biểu mẫu để hoàn thành. Điền vào nó bằng cách sử dụng các cài đặt sau:

Mã nguồn [Chọn]
Máy chủ SMTP: smtp.office365.com
Mã hóa: TLS
Cổng SMTP: 587
TLS tự động: (để ở chế độ bật)
Xác thực: (bật)
Tên người dùng SMTP: Địa chỉ email tài khoản
Office 365 của bạn Mật khẩu SMTP: Mật khẩu tài khoản Office 365 của bạn

Một vấn đề quan trọng với phương pháp này là nó yêu cầu lưu trữ mật khẩu của bạn ở dạng văn bản thuần túy trong WordPress. Điều này không an toàn và mật khẩu của bạn sẽ được hiển thị cho bất kỳ quản trị nào khác trên tài khoản của bạn. Thay vào đó, bạn có thể sử dụng hướng dẫn trong ứng dụng WP Mail SMTP để ghi nó vào tập tin wp-config.php của mình.

Để biết thêm chi tiết, hãy xem hướng dẫn chi tiết về cách thiết lập Outlook với WP Mail SMTP.

8.3. Sử dụng Amazon SES với WP Mail SMTP để sửa email WordPress.

Nền tảng AWS của Amazon có Dịch vụ email đơn giản (SES) mà bạn có thể sử dụng để khắc phục sự cố email WordPress.
Điểm tuyệt vời nhất của Amazon là nó cho phép bạn gửi tới 62.000 email miễn phí mỗi tháng. Nhược điểm là việc thiết lập hơi khó khăn hơn đối với người mới bắt đầu, đó là lý do tại sao mình không khuyên bạn nên chọn nó làm tùy chọn ưa thích của mình.

Nhưng như bạn có thể tưởng tượng, rất nhiều chuyên gia và chuyên gia sử dụng Amazon SES cho dịch vụ SMTP email WordPress của họ, vì vậy mình không thể viết một bài viết mà không đề cập đến nó.
Nếu bạn quan tâm đến việc thiết lập Amazon SES với WordPress, hãy xem hướng dẫn đầy đủ về cách thiết lập Amazon SES với WordPress.

Dù bạn quyết định sử dụng loại thư nào, hãy luôn nhớ sử dụng tab 'Email Kiểm tra' để đảm bảo rằng các email được gửi thành công.

Bạn cũng phải kiểm tra hộp thư đến của mình và xác nhận rằng bạn đã nhận được email kiểm tra.
Mình hy vọng bài viết này đã giúp bạn tìm hiểu cách sửa lỗi WordPress không gửi được email. Bạn cũng có thể muốn xem danh sách các lỗi WordPress phổ biến nhất của mình và cách khắc phục chúng.