Một trong những câu hỏi thường gặp nhất trên CunghocWP là cách khắc phục sự cố không gửi email trong WordPress.
Nhiều người dùng mới hỏi chúng tôi tại sao plugin contact form của họ không gửi email, 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, chúng tôi sẽ hướng dẫn bạn cách khắc phục sự cố WordPress không gửi được email và làm thế nào để email bạn gửi đi không bị vào mục spam.
Tại sao bạn không nhận được Emails từ trang web WordPress của mình?
Nguyên nhân phổ biến nhất gây ra lỗi này là máy chủ lưu trữ WordPress của bạn không được cấu hình đúng để sử dụng hàm PHP mail ().
Ngay cả khi hosting của bạn đã config chính xác để sử dụng chức năng này, nhiều nhà cung cấp dịch vụ email như Gmail, vv… vẫn sử dụng nhiều tool khác nhau để giảm spam. Các tool sẽ xác định email này đến từ đâu.
Email được gửi bởi các trang web WordPress thường bị đánh dấu spam.
Điều này có nghĩa là khi một email được gửi từ trang web WordPress của bạn (plugin contact form, thông báo của quản trị viên, vv, …) có thể không được gửi đi.
Đây là lý do tại sao chúng tôi khuyên bạn không nên sử dụng WordPress để gửi email newsletter.
CunghocWP khuyên bạn nên sử dụng SMTP để gửi email trong WordPress.
SMTP là gì?
SMTP (Giao thức chuyển thư đơn giản) là tiêu chuẩn để gửi email.
Không giống như hàm PHP mail (), SMTP sử dụng phương thức xác thực chính xác hơn dẫn đến việc gửi email có tỉ lệ thành công cao hơn.
WordPress có plugin WP Mail SMTP để cấu hình trang web WordPress, bạn có thể gửi email bằng cách sử dụng SMTP thay vì chức năng PHP mail().
Bạn có thể kết nối với bất kỳ dịch vụ SMTP phổ biến như SendinBlue, Gmail (G Suite), Office365, Amazon SES, vv,…
Khắc phục sự cố WordPress không gửi email
Cài đặt plugin WP Mail SMTP
Dù bạn chọn dịch vụ SMTP nào thì cũng sẽ cần cài đặt plugin WP Mail SMTP. Điều này cho phép bạn chuyển đổi WordPress từ sử dụng hàm PHP mail () tích hợp sang sử dụng dịch vụ SMTP.
Đầu tiên, bạn cần cài đặt và kích hoạt plugin WP Mail SMTP. Nếu chưa biết cách cài đặt, hãy xem hướng dẫn cài đặt plugin WordPress của chúng tôi.
Tiếp theo, nhấp vào WP Mail SMTP trong bảng điều khiển WordPress để định cấu hình cài đặt plugin.
Nhập tên và địa chỉ email mà bạn muốn gửi email. Hãy chắc chắn rằng bạn sử dụng cùng một địa chỉ email với dịch vụ gửi email SMTP của mình.
Bạn có thể chọn buộc cá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ác cài đặt khác nhau. WP Mail SMTP sẽ ghi đè cài đặt của các plugin khác.
Sau đó, chọn một dịch vụ gửi thư SMTP cho trang web.
Ở đây, chúng tôi sẽ thiết lập SMTP bằng Sendinblue. Chúng tôi cũng có các hướng dẫn về cách sử dụng Gmail hoặc Office365 ở cuối bài viết.
Để 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. Chúng tôi sẽ chuyển sang phần tiếp theo và sau đó quay lại để hoàn tất thiết lập trên WP Mail SMTP.
Gửi email WordPress bằng Sendinblue
Sendinblue là một nhà cung cấp dịch vụ email phổ biến. Họ cho phép bạn gửi một số lượng lớn email với khả năng gửi thành công khá lớn.
Bạn có thể sử dụng Sendinblue để gửi miễn phí tối đa 300 email mỗi ngày. Điều này quá đủ cho hầu hết các trang web nhỏ.
Đây có thể là email từ contact form 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.
Đầu tiên, bạn cần truy cập trang web Sendinblue để tạo tài khoản. Nhấp vào ‘Sign up free’ để 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. Nếu bạn chưa hoàn thành hồ sơ của mình trong giai đoạn thiết lập thì sẽ được nhắc nhở hoàn thành tại đây.
Tiếp theo, bạn cần liên hệ với nhóm hỗ trợ để yêu cầu họ xác minh tài khoản của bạn, để bạn có thể gửi email thông qua Sendinblue.
Chúng tôi khuyên bạn nên liên hệ với nhóm hỗ trợ ở giai đoạn này vì có thể mất khoảng 24 giờ để họ xác minh tài khoản của bạn. Bạn có thể tiếp tục với các bước tiếp theo trong khi chờ đợi.
Truy cập sendinblue.com/contact và viết một tin nhắn bao gồm:
- Yêu cầu kích hoạt tài khoản của bạn
- URL của trang web
- Một lưu ý rằng bạn sẽ gửi email giao dịch. Nếu bạn cũng muốn sử dụng Sendinblue cho email newsletter của mình thì cần phải nói rằng bạn cũng sẽ gửi email marketing.
Bạn có thể được yêu cầu bổ sung thêm thông tin. Nếu không, bạn sẽ nhận được email từ Sendinblue thông báo rằng tài khoản của bạn đã được phê duyệt.
Khi bạn đã gửi tin nhắn của mình đến nhóm liên hệ thì có thể chuyển sang thêm tên miền của mình vào trang web.
Hãy nhớ rằng bạn không cần phải đợi câu trả lời trước khi chuyển sang giai đoạn tiếp theo của hướng dẫn này.
Thiết lập một tên miền phụ cho trang web của bạn.
Đầu tiên, bạn sẽ cần thiết lập một tên miền phụ. Điều này giống như một phần riêng biệt của trang web. Chúng tôi đề nghị sử dụng mail1.yourdomain.com.
Lưu ý: Máy chủ WordPress của bạn có thể không cho phép bạn sử dụng mail làm tên miền phụ, đó là lý do tại sao chúng tôi cũng đã đặt số 1 trong đó.
Để thêm tên miền phụ, hãy đăng nhập vào tài khoản web hosting và tìm phần Domains trong bảng điều khiển.
Vì mục đích của hướng dẫn này, chúng tôi sẽ trình bày cách thực hiện điều đó trên tài khoản lưu trữ ví dụ của chúng tôi trên Bluehost. Sau khi bạn đăng nhập, hãy truy cập Domains » Subdomains.
Sau đó, bạn có thể nhập tên miền phụ của mình và nhấp vào ‘Create’.
Nếu bạn 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ư Domain.com hoặc GoDaddy thì hãy làm theo hướng dẫn tương tự của họ.
Sau khi đã tạo tên miền phụ, bạn sẽ cần thêm tên miền đó vào tài khoản Sendinblue của mình.
Thêm tên miền phụ vào Sendinblue
Trong tài khoản Sendinblue, truy cập ‘Settings’, sau đó tìm ‘Your Senders’ và nhấp vào ‘Configure’:
Tiếp theo, nhấp vào tab ‘Domains’ và chọn ‘Add a New Domain’.
Nhập đầy đủ tên miền phụ (ví dụ mail1.yoursite.com) và đánh dấu vào ô bên cạnh “I would like to use this domain name to digitally sign my emails (SPF, DKIM, DMARC)”.
Tiếp theo, nhấp vào ‘Save’ 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ã code 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 bằng cách nhấp vào ‘Authenticate This Domain’ bên cạnh tên miền phụ của bạn:
Mở một tab trình duyệt mới và đăng nhập lại vào tài khoản web hosting của bạn. Bạn cần tìm tên miền của mình và mở bản ghi DNS.
Trong Bluehost, bạn thực hiện việc này bằng cách truy cập Domains » My Domains, sau đó nhấp vào ‘Manage’ bên cạnh tên miền của bạn.
Bạn cần phải 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 bản ghi DNS của bạn. Phần TXT trông như sau:
Sau đó nhấp vào ‘Add Record’.
Hoàn thành bản ghi đầu tiên như sau:
Bản ghi máy chủ: mail._domainkey.mail1
Loại bản ghi: TXT
Giá trị TXT: Copy từ Sendinblue.
TTL: 1 ngày
Mẹo: Bản ghi máy chủ có thể được gọi là Máy chủ hoặc Tên của máy chủ web của bạn. Thay đổi mail1 nếu bạn đã sử dụng một cái gì đó khác cho tên miền phụ của bạn. 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 tương đương với 1 ngày). Nếu bạn sử dụng GoDaddy, hãy đặt thành 1 giờ.
Sau khi thêm bản ghi đầu tiên, hãy nhấp vào Save.
Tiếp theo, bạn cần thêm bản ghi thứ hai. Hoàn thành như sau:
Bản ghi máy chủ: mail1
Loại bản ghi: TXT
Giá trị TXT: v=spf1 include:spf.sendinblue.com mx ~all
TTL: 1 ngày
Sau khi hoàn thành, nhấp vào ‘Save’.
Tiếp theo, hoàn thành bản ghi thứ ba:
Bản ghi máy chủ: mail1
Loại bản ghi: TXT
Giá trị TXT: Copy từ Sendinblue. Đó là đoạn mã thứ ba.
TTL: 1 ngày
Sau khi hoàn thành, 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à chúng tôi khuyên bạn nên bỏ qua trừ khi bạn có kinh nghiệm với cấu hình DMARC.
Sau khi đã thêm hồ sơ, hãy quay lại Sendinblue. Đối với mỗi bản ghi, nhấp vào nút ‘Record Added’. Vui lòng xác minh bản ghi. Có thể mất 24-48 giờ trước khi Sendinblue có thể xác minh hồ sơ của bạn, nhưng việc này thường nhanh hơn rất nhiều.
Nếu không có gì xảy ra khi bạn nhấp vào nút đó, các bản ghi có thể chưa được xác minh. Kiểm tra lại sau và xem nếu các bản ghi đã được xác minh. Khi đã xác minh, bạn sẽ thấy từ ‘Configured’ bên cạnh các bản ghi màu xanh dương:
Bạn có thể tiếp tục với hướng dẫn này trong khi chờ xác minh.
Hoàn tất thiết lập WP Mail SMTP để sử dụng Sendinblue
Quay trở lại cài đặt WP Mail SMTP trong bảng điều khiển WordPress của bạn. Bạn nên nhập From Email và From Name, nếu không, bạn có thể làm điều đó ngay bây giờ.
Bỏ chọn hộp ‘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 người gửi thư của bạn.
Bạn cần vào tài khoản Sendinblue để tìm khóa API. Chỉ cần nhấp vào liên kết bên dưới hộp ‘API Key’, bảng điều khiển tài khoản Sendinblue của bạn sẽ mở ra ở đúng nơi, trong một tab mới.
Copy khóa API v3 từ trang này.
Như vậy bạn đã hoàn thành mọi thiết lập. Bước cuối cùng là gửi email kiểm tra để đảm bảo mọi thứ đều hoạt động.
Chuyển đến tab ‘Email Test’ của WP Mail SMTP và nhập địa chỉ email để gửi email. Điều này sẽ mặc định cho email quản trị trang web. Nhấp vào ‘Send Email’.
Bạn sẽ thấy thông báo ‘Test HTML email was sent successfully!’. Hãy kiểm tra hộp thư đến của bạn để xem có nhận được mail hay không. Nội dung như sau:
Note: nếu tài khoản Sendinblue của bạn chưa được kích hoạt thì bạn sẽ nhận được thông báo: [permission_denied]: Unable to send email. Your SMTP account is not yet activated
.
Các phương pháp khắc phục sự cố email WordPress khác
Trong danh sách các tùy chọn mailer của WP Mail, bạn không cần phải sử dụng Sendinblue. Mặc dù đây đề xuất miễn phí hàng đầu của chúng tôi nhưng bạn có thể sử dụng những tùy chọn khác như Office 365, Gmail/G Suite, Amazon SES, vv, …
Sử dụng Gmail hoặc G Suite với WP Mail SMTP để sửa lỗi email WordPress
Nếu bạn có tài khoản Gmail hoặc G Suite thì có thể sử dụng tài khoản đó để gửi email. Bạn không cần phải nhập chi tiết đăng nhập email 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ư ở trên, sau đó nhấp vào tùy chọn ‘Google’ cho người gửi thư của bạn.
Bạn cần kiểm tra lại hộp ‘Return Path’.
Sau đó, bạn sẽ được yêu cầu nhập ‘Client ID’ và ‘Client Secret’. Để có được những chi tiết này, bạn sẽ cần phải 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ẻ phức tạp. Bạn có thể tìm thấy hướng dẫn 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 nhanh hơn nhiều nếu bạn sử dụng G Suite. Hãy xem hướng dẫn của chúng tôi 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ố nhược điểm khi sử dụng Gmail hoặc G Suite.
Một là bạn có thể cần 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 để công cụ này hoạt động.
Một điều nữa 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ộ quá trình. Điều này sẽ bao gồm cả việc tạo một ứng dụng web mới.
Sử dụng Office 365/Outlook với WP Mail SMTP để sửa lỗi 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ì cũng có thể sử dụng công cụ này để gửi email thông qua WordPress. Tuy nhiên, tùy chọn này không được đề xuất vì kém an toàn.
Bạn cần phải thiết lập WP Mail SMTP như trên, sau đó nhấp vào tùy chọn ‘Other SMTP’. Thao tác này sẽ mở ra một hình thức. Hãy điền các cài đặt sau:
Máy chủ SMTP: smtp.office365.com
Mã hóa: TLS
Cổng SMTP: 587
Tự động TLS: (bật tắt)
Xác thực: (bật tắ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
Có một vấn đề là phương pháp này yêu cầu lưu trữ mật khẩu của bạn trong 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ẽ hiển thị cho bất kỳ quản trị viên nào khác trên tài khoản của bạn. Bạn có thể sử dụng các hướng dẫn trong ứng dụng WP Mail SMTP để ghi lại điều này trong 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.
Sử dụng Amazon SES với WP Mail SMTP để sửa lỗi email WordPress
Nền tảng AWS của Amazon có Dịch vụ email đơn giản (SES), bạn có thể sử dụng để khắc phục sự cố email WordPress.
Ưu điểm là Amazon 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 khó khăn hơn một chút đối với người mới bắt đầu, đó là lý do tại sao chúng tôi không giới thiệu phương pháp này là lựa chọn ưa thích của mình.
Rất nhiều nhà chuyên môn và chuyên gia sử dụng Amazon SES cho dịch vụ SMTP email WordPress của họ. Vì vậy chúng tôi không thể viết một bài viết mà không đề cập đến công cụ này.
Nếu bạn quan tâm đến việc thiết lập Amazon SES với WordPress thì hãy xem hướng dẫn thiết lập Amazon SES với WordPress.
Hãy luôn nhớ sử dụng tab ‘Test Email’ để đảm bảo email được gửi thành công.
Bạn cũng cần đảm bảo 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.
Chúng tôi hi vọng bài viết này sẽ giúp bạn tìm hiểu cách khắc phục sự cố WordPress không gửi được email. Bạn cũng có thể muốn xem danh sách các lỗi phổ biến nhất của WordPress và cách khắc phục chúng.
Nếu thích bài viết này, hãy theo dõi YouTube Channel để xem thêm các video hướng dẫn về WordPress. Bạn cũng có thể tìm kiếm chúng tôi trên Twitter hoặc Facebook.