Đây là lỗi đắt nhất mà chủ website thường không biết mình đang gặp. Website không sập, không có cảnh báo nào. Khách điền form, thấy dòng "Cảm ơn, chúng tôi sẽ liên hệ lại", rồi chờ. Bên bạn không nhận được gì. Khách gọi cho đối thủ.
Khi kiểm tra website cho khách, form không về email là một trong những lỗi chúng tôi gặp nhiều nhất, và chủ website gần như luôn ngạc nhiên.
Thử ngay trong 10 phút
- Mở website bằng điện thoại, dùng 4G, ở cửa sổ ẩn danh.
- Điền form như một khách thật, ghi rõ "THỬ FORM ngày …" trong nội dung.
- Chờ 10 phút. Kiểm tra hộp thư nhận, cả mục Thư rác và mục Quảng cáo/Cập nhật của Gmail.
- Nếu dùng WordPress với plugin form lưu lại liên hệ (Contact Form 7 + Flamingo, WPForms, Fluent Forms…), vào trang quản trị xem liên hệ có được lưu không.
Kết quả sẽ rơi vào một trong ba trường hợp: thư về hộp thư chính (ổn), thư vào thư rác, hoặc không có thư nào.
Nguyên nhân 1: Hosting chặn hoặc hạn chế hàm gửi thư
Nhiều form mặc định gửi thư bằng hàm `mail()` của PHP trên hosting. Không ít hosting giới hạn số thư mỗi giờ, chặn hẳn hàm này, hoặc máy chủ nằm trong danh sách đen chống spam. Thư được "gửi" nhưng không bao giờ tới nơi.
Cách sửa: gửi thư qua SMTP của một hộp thư thật (email theo tên miền, Google Workspace…) bằng plugin SMTP. Thư đi qua máy chủ email đàng hoàng thay vì máy chủ web.
Nguyên nhân 2: Thư gửi "từ" chính địa chỉ Gmail của khách
Một số form ghi người gửi là email khách vừa nhập (`[email protected]`) nhưng thư lại xuất phát từ máy chủ web của bạn. Gmail thấy ngay đây là thư giả danh và vứt vào thư rác hoặc từ chối.
Cách sửa: người gửi (From) luôn là địa chỉ thuộc tên miền của bạn, ví dụ `[email protected]`. Email của khách đặt ở trường Reply-To, để bạn bấm Trả lời là đến đúng khách.
Nguyên nhân 3: Tên miền thiếu SPF, DKIM
Kể cả dùng SMTP, nếu tên miền không khai báo máy chủ nào được gửi thư, thư vẫn dễ vào thư rác. Xem cách kiểm tra "Hiển thị thư gốc" trong bài email theo tên miền.
Nguyên nhân 4: Email nhận bị sai hoặc không còn ai đọc
Nghe đơn giản nhưng rất hay gặp:
- Email nhận là của người làm web ngày trước, hoặc của nhân viên đã nghỉ.
- Gõ nhầm một ký tự khi cài đặt.
- Hộp thư nhận đầy dung lượng, thư bị trả về.
Cách sửa: vào cài đặt form, xem chính xác thư đang gửi tới đâu. Dùng một hộp thư chung của doanh nghiệp (`lienhe@`) mà ít nhất hai người cùng đọc.
Nguyên nhân 5: Plugin hoặc giao diện lỗi sau khi cập nhật
Form đang chạy tốt, rồi một lần cập nhật WordPress, plugin form, plugin cache hoặc plugin bảo mật làm nó hỏng: nút gửi quay mãi không dừng, báo lỗi đỏ, hoặc báo thành công nhưng không làm gì. Plugin cache đôi khi lưu lại cả mã chống giả mạo đã hết hạn của form.
Cách sửa: sau mỗi lần cập nhật, gửi thử form một lần. Loại trang có form ra khỏi bộ nhớ đệm (cache) nếu plugin form yêu cầu.
Nguyên nhân 6: Chặn spam quá tay
reCAPTCHA cấu hình sai tên miền, plugin tường lửa chặn nhầm địa chỉ IP Việt Nam, hoặc bộ lọc từ khoá chặn cả tin nhắn bình thường có chữ "giá" hay "khuyến mãi". Khách thật bị chặn mà không biết.
Cách sửa: thử form từ nhiều mạng khác nhau (4G, wifi nhà, wifi công ty). Xem nhật ký của plugin chống spam có đang chặn liên hệ thật không.
Cách thiết lập để không mất thêm liên hệ
Một form tốt có nhiều lớp dự phòng:
- Lưu mọi liên hệ vào website (cơ sở dữ liệu hoặc file) trước khi gửi thư. Thư lỗi thì vẫn còn bản lưu.
- Gửi thư qua SMTP với người gửi thuộc tên miền của bạn.
- Thêm một kênh thứ hai: thông báo qua Zalo OA, Telegram, hoặc một hộp thư khác.
- Thử form định kỳ: mỗi tháng một lần và sau mỗi lần cập nhật.
- Theo dõi con số: tháng trước 20 liên hệ, tháng này 0 là dấu hiệu hỏng, không phải "tháng này ế".
Website chúng tôi dựng đều lưu liên hệ trước rồi mới gửi thư, và gửi thử form nằm trong checklist hàng tháng của gói bảo trì website. Không chắc form của bạn đang chạy? Gửi link website để nhận báo cáo kiểm tra miễn phí, trong đó có kiểm tra cấu hình email của tên miền.