Email Spam Tester

HomeBlogEmail WordPress vào spam? Sửa form, thông báo, WooCommerce

Email WordPress vào spam? Sửa form, thông báo, WooCommerce

Vì sao email từ WordPress vào spam hoặc không đến nơi, và cách khắc phục cho form liên hệ, đặt lại mật khẩu và đơn hàng WooCommerce.

Trên trang nàyWordPress gửi email mặc định như thế nào
  1. WordPress gửi email mặc định như thế nào
  2. Gửi qua một dịch vụ email thực sự
  3. Địa chỉ From trên biểu mẫu liên hệ
  4. Email WooCommerce
  5. Phía DNS, nói một cách đơn giản
  6. Kiểm tra email thực tế, không phải thư thử nghiệm
  7. Khi email vẫn bị chuyển vào thư rác

Một trang WordPress gửi nhiều email hơn chủ sở hữu nghĩ. Thông báo từ biểu mẫu liên hệ. Email đặt lại mật khẩu. Email chào mừng người dùng mới, cảnh báo kiểm duyệt bình luận, và trên trang bán hàng là mọi email xác nhận đơn hàng, hóa đơn và cập nhật vận chuyển của WooCommerce. Hầu hết các email này không được ai thiết kế, cũng không được ai kiểm tra cho đến khi khách hàng báo rằng họ chưa bao giờ nhận được email về đơn hàng.

Khi một trong những email này rơi vào thư rác, hãy kiểm tra cách thư rời khỏi máy chủ trước khi chỉnh sửa nội dung. Trong WordPress, phần này mặc định được thiết lập theo phương thức có khả năng gửi đến hộp thư thấp nhất.

WordPress gửi email mặc định như thế nào

Bản thân WordPress và gần như mọi plugin gửi thư, bao gồm WooCommerce và các plugin biểu mẫu, đều sử dụng một hàm duy nhất, wp_mail(). Hàm này chuyển thư cho PHPMailer. Theo mặc định, PHPMailer chuyển thư đến hàm mail() của PHP, rồi hàm này chuyển tiếp cho chương trình thư có trên máy chủ lưu trữ. Không đăng nhập vào nhà cung cấp dịch vụ thư, không ký thư, và không có thông tin nào trong DNS cho biết máy chủ này được phép gửi thư thay mặt miền của bạn.

Địa chỉ người gửi được chọn là wordpress@ theo sau bởi miền của trang web, WordPress loại bỏ tiền tố www.. Nếu bạn chưa từng thay đổi địa chỉ này, đó là địa chỉ khách hàng nhìn thấy trong dòng From, và trên nhiều trang web, chưa ai từng tạo hộp thư đó.

Trên dịch vụ lưu trữ dùng chung, thư sau đó được gửi từ máy chủ của nhà cung cấp qua một địa chỉ IP được nhiều trang web khác cùng sử dụng. Nếu một trong số đó gửi thư đến danh sách đã mua, hoặc bị tấn công rồi bắt đầu phát tán thư rác, địa chỉ IP này sẽ mang tiếng xấu, và email đặt lại mật khẩu của bạn được gửi từ cùng địa chỉ IP với thư của họ.

Vì vậy, một bản cài đặt WordPress mặc định gửi thư có SPF không khớp với miền của bạn. Địa chỉ nhận thư trả lại thường vẫn dùng tên máy chủ riêng của nhà cung cấp dịch vụ lưu trữ. Nếu địa chỉ của bạn được dùng ở đó, SPF sẽ thất bại hoàn toàn. Thư cũng không có chữ ký DKIM cho miền của bạn, nên DMARC thất bại. Gmail và Yahoo áp dụng quy tắc dành cho người gửi vào tháng 2 năm 2024. Microsoft cũng làm tương tự vào tháng 5 năm 2025 đối với các miền gửi hơn 5.000 thư mỗi ngày đến Outlook.com. Kể từ tháng 11 năm 2025, Gmail đã từ chối nhiều thư vi phạm quy tắc hơn thay vì đưa chúng vào thư rác.

Gửi qua một dịch vụ email thực sự

Cách khắc phục quan trọng nhất là ngừng sử dụng mail(). Hãy cài đặt một plugin SMTP (WP Mail SMTP, FluentSMTP và Post SMTP là các lựa chọn phổ biến, mỗi plugin đều có phiên bản miễn phí) rồi kết nối plugin đó với một dịch vụ gửi email đúng cách: nhà cung cấp hộp thư của bạn, chẳng hạn như Google Workspace hoặc Microsoft 365, hoặc một dịch vụ email giao dịch như Amazon SES, Brevo, SendGrid hoặc Mailgun.

Plugin sẽ thay thế phương thức truyền tải bên dưới wp_mail(), vì vậy mọi email từ tất cả plugin đều được gửi theo cách mới mà không cần sửa chính các plugin đó. Nếu plugin hỗ trợ API của nhà cung cấp, hãy sử dụng tùy chọn này thay vì SMTP thông thường kèm mật khẩu. WP Mail SMTP cho biết phương thức qua API vẫn hoạt động ngay cả khi máy chủ lưu trữ của bạn chặn các cổng SMTP.

Nhiều người bỏ qua bước tiếp theo. Hãy xác thực tên miền tại nhà cung cấp đó: mỗi nhà cung cấp sẽ cung cấp cho bạn các bản ghi DNS cần công bố, thường là hai hoặc ba bản ghi CNAME cho DKIM cùng với một mục include trong SPF hoặc một tên miền return-path tùy chỉnh. Cho đến khi các bản ghi đó có trong DNS của bạn, nhà cung cấp sẽ dùng tên của họ trong chữ ký và DMARC vẫn thất bại ở đó giống như trên máy chủ lưu trữ.

Địa chỉ From trên biểu mẫu liên hệ

Các plugin biểu mẫu, trong đó có Contact Form 7 và WPForms, cho phép bạn chọn nội dung xuất hiện trong dòng From của thông báo mà bạn nhận được. Nhiều cấu hình đặt địa chỉ của khách truy cập vào đó để khi bạn nhấn Reply, thư trả lời sẽ được gửi đến khách truy cập. Cách này có vẻ thông minh, nhưng đó chính xác là điều DMARC được thiết kế để ngăn chặn.

Giả sử một khách truy cập tên Anna gửi biểu mẫu bằng địa chỉ anna@yahoo.com. Lúc này, trang web của bạn gửi một thư tự nhận là đến từ yahoo.com thông qua một máy chủ chưa từng được Yahoo ủy quyền. yahoo.com công bố chính sách DMARC là p=reject, vì vậy máy chủ nhận tuân thủ chính sách này sẽ từ chối thông báo do coi đó là thư giả mạo. Với khách truy cập dùng Gmail, chính sách nhẹ hơn và thư thường bị đưa vào thư rác. WPForms cảnh báo chính xác về vấn đề này trong tài liệu của họ.From là bạn, Reply-To là khách truy cập

Thay vào đó, hãy cấu hình như sau:

  • From: một địa chỉ thuộc tên miền của bạn, chẳng hạn như forms@yourdomain.com, cùng tên miền mà plugin SMTP của bạn đã xác thực.
  • Reply-To: địa chỉ của khách truy cập lấy từ trường trong biểu mẫu. Khi nhấn Reply, thư vẫn được gửi đến Anna.
  • To: hộp thư mà bạn thực sự đọc.

Trong Contact Form 7, hãy mở tab Mail, nhập địa chỉ của bạn vào From và thêm Reply-To: [your-email] trong Additional headers. Các plugin biểu mẫu khác có trường Reply-To trong phần cài đặt thông báo.

Email WooCommerce

WooCommerce có các cài đặt người gửi riêng: vào WooCommerce, rồi Settings, tiếp theo là Emails, sau đó đến phần Email Sender Options, nơi có tên "From" và địa chỉ "From". Theo mặc định, địa chỉ này là email quản trị của trang web. Nếu người cài đặt cửa hàng đã dùng địa chỉ Gmail cho mục đó, mọi email xác nhận đơn hàng sẽ được gửi đi với thông tin cho rằng chúng đến từ gmail.com và không vượt qua DMARC vì cùng lý do như biểu mẫu liên hệ ở trên. Hãy nhập vào đó một địa chỉ thuộc miền đã được xác thực của bạn. Tên cửa hàng là một tên người gửi phù hợp. (Đối với thông báo đơn hàng gửi cho bạn, WooCommerce đã đặt khách hàng vào Reply-To, đây là cách thiết lập đúng.)

Email của cửa hàng có thể gặp hai vấn đề không xảy ra với biểu mẫu liên hệ.

Vấn đề đầu tiên là khối lượng gửi. Khi một plugin bán hàng hoặc bản tin gửi email cho khách hàng qua cùng tuyến với email xác nhận đơn hàng, email tiếp thị và email giao dịch sẽ dùng chung một danh tiếng. Nếu bản tin bị khiếu nại, khả năng gửi email biên nhận cũng bị ảnh hưởng. Gửi hai loại email qua các dịch vụ khác nhau giúp tách biệt chúng. Dùng một miền phụ riêng cho email tiếp thị cũng có ích đôi chút, dù bên nhận vẫn tính đến danh tiếng của miền chính.

Vấn đề thứ hai liên quan đến việc hủy đăng ký. Email xác nhận đơn hàng và đặt lại mật khẩu là email giao dịch, nên quy định hủy đăng ký bằng một lần nhấp của Gmail và Yahoo không áp dụng cho chúng. Yêu cầu đánh giá, lời nhắc về giỏ hàng bị bỏ quên hoặc email "bạn cũng có thể thích" gửi cho khách hàng cũ là email tiếp thị. Nếu bạn gửi những email này với số lượng lớn, quy định sẽ áp dụng đầy đủ, nghĩa là phải có tiêu đề List-Unsubscribe kèm tùy chọn hủy đăng ký bằng một lần nhấp. Hãy kiểm tra xem tiện ích bổ sung gửi các email đó có thêm tiêu đề này hay không. Bài kiểm tra bên dưới sẽ hiển thị kết quả trong cả hai trường hợp.

Phía DNS, nói một cách đơn giản

Dù bạn gửi qua dịch vụ nào, tên miền của bạn cũng cần ba thành phần trong DNS để email được tin cậy. Bạn có thể xem hướng dẫn đầy đủ tại Giải thích về SPF, DKIM và DMARC. Dưới đây là ý nghĩa của chúng đối với một trang WordPress.

  • SPF. Một bản ghi TXT trên tên miền của bạn, liệt kê những bên được phép gửi email thay mặt tên miền đó. Nhiều dịch vụ gửi email không yêu cầu thay đổi bản ghi này vì họ căn chỉnh qua tên miền thư trả lại của riêng mình. Nếu dịch vụ của bạn yêu cầu thêm một include: và tên miền đã có bản ghi dành cho nhà cung cấp hộp thư, hãy thêm nó vào bản ghi đó. Không tạo bản ghi thứ hai. Hai bản ghi SPF là một lỗi và cả hai sẽ ngừng hoạt động. Kiểm tra kết quả bằng công cụ kiểm tra SPF.
  • DKIM. Các bản ghi do dịch vụ gửi email cung cấp cho bạn. Sau khi các bản ghi có hiệu lực, dịch vụ sẽ ký mọi thư bằng tên miền của bạn. Đây là chữ ký mà DMARC tìm kiếm.
  • DMARC. Một bản ghi TXT tại _dmarc.yourdomain.com. Hãy bắt đầu với v=DMARC1; p=none; rua=mailto: cùng một địa chỉ bạn thường xuyên kiểm tra, sau đó siết chặt chính sách khi báo cáo cho thấy không có email nào của bạn bị lỗi. Công cụ kiểm tra DMARC sẽ đọc cấu hình hiện tại của bạn.

Hãy nhớ rằng máy chủ lưu trữ vẫn có thể tự gửi một số email, chẳng hạn từ tác vụ cron hoặc plugin cũ gọi trực tiếp mail() thay vì wp_mail(). Những thư này bỏ qua plugin SMTP, và báo cáo DMARC sẽ hiển thị chúng dưới dạng một nguồn mà bạn không dự kiến.

Kiểm tra email thực tế, không phải thư thử nghiệm

Mọi plugin SMTP đều có nút "send test email", và nút này chỉ chứng minh rằng kết nối hoạt động. Nó không hiển thị email xác nhận đơn hàng đúng như WooCommerce tạo ra, thông báo biểu mẫu với trường Reply-To, hoặc email đặt lại mật khẩu với liên kết do WordPress chèn vào.

Vì vậy, tôi để WordPress gửi các email thực tế. Một địa chỉ thử nghiệm trên trang chủ chỉ nhận một thư, vì vậy hãy lấy địa chỉ mới cho mỗi email bạn muốn kiểm tra. Với biểu mẫu, hãy tạm thời đặt địa chỉ đó làm người nhận thông báo rồi gửi biểu mẫu. Với WooCommerce, hãy tạo một đơn hàng thử nghiệm và dùng địa chỉ đó làm email khách hàng. Với email đặt lại mật khẩu, hãy gán địa chỉ đó cho một người dùng thử nghiệm rồi yêu cầu đặt lại mật khẩu. Mỗi thư có một báo cáo riêng, bao gồm SPF, DKIM và DMARC cùng trạng thái căn chỉnh, 21 danh sách chặn, nội dung và liên kết, cũng như các quy tắc dành cho người gửi số lượng lớn. Để kiểm tra thư mục nhận thư tại Gmail, Outlook, Yahoo và các nhà cung cấp khác, bạn cần gửi cùng một thư đến danh sách hộp thư với một dấu nhận biết trong tiêu đề. Biểu mẫu hoặc đơn hàng trong cửa hàng không thể làm việc này, vì vậy hãy dành phần đó cho các email bạn tự gửi.

Nếu bạn không muốn tạo đơn hàng thử nghiệm theo cách thủ công, plugin WordPress miễn phí sẽ gửi các thư này qua wp_mail() của chính trang web, cùng một đường đi như email gửi đến khách hàng, rồi hiển thị kết quả trong bảng điều khiển. Plugin cũng phát hiện khi trang web bắt đầu gửi một loại email mà trước đó nó chưa từng thấy.

Khi email vẫn bị chuyển vào thư rác

Nếu quá trình xác thực thành công, địa chỉ From thuộc tên miền của bạn nhưng email vẫn bị chuyển vào thư rác, hãy kiểm tra uy tín của hệ thống chuyển tiếp email. IP của dịch vụ lưu trữ dùng chung nằm trong danh sách chặn là nguyên nhân phổ biến khi bạn vẫn sử dụng mail(), và công cụ kiểm tra danh sách chặn sẽ cho bạn biết điều đó. Nội dung có vai trò nhỏ hơn mọi người thường nghĩ. Một thông báo từ biểu mẫu chỉ có một liên kết và ba dòng văn bản hiếm khi tự nó kích hoạt bộ lọc. Email WooCommerce có mẫu HTML nặng, một hình ảnh lớn và dịch vụ rút gọn liên kết thì có thể.

Hãy kiểm tra một email, khắc phục những vấn đề trong báo cáo rồi gửi lại email đó đến một địa chỉ mới.

Các bài viết khác

Trước tiên, hãy gửi email thực tế đến địa chỉ kiểm thử

42 lượt kiểm tra SPF, DKIM, DMARC, danh sách chặn, tiêu đề hủy đăng ký và nội dung, cùng thư mục mà email được chuyển đến tại Gmail, Outlook, Yahoo và các nhà cung cấp khác. Miễn phí, không cần đăng ký.

Nhận địa chỉ kiểm thử