Website PHP gặp lỗi khi dùng hàm mail() để gởi Email

Hàm mail() là một trong những hàm rất thông dụng của ngôn ngữ lập trình web PHP.

Hàm mail() là một trong những hàm rất thông dụng của ngôn ngữ lập trình web PHP, nó dùng để gửi email mà không cần xác nhận tài khoản với máy chủ Email (SMTP Server cài sẵn trên chính máy chủ Web Hosting).

Chính vì nó quá phổ biến nên các mã nguồn website như: Joomla, Wordpress, NukeViet, VBB... đều tận dụng hàm mail() để người cài đặt lên Web hosting không cần cấu hình gì thêm. Mặc dù các mã nguồn trên cũng có sẵn một bảng cài đặt SMTP hoàn chỉnh, với Username & Password để chứng thực và kết nối đến bất kỳ SMTP nào khác, ngay cả Gmail.com để gởi email đi.

Càng về sau này, khi việc gởi thư rác, lừa đảo, thư giả mạo tràn ngập Internet - Hacker bắt đầu khai thác những lỗ hổng bảo mật của Website và cài vào đó những đoạn mã độc, lợi dụng hàm mail() để gởi thư trái phép. Khi việc này xảy ra, nhà cung cấp dịch vụ Webhosting buộc phải tạm dừng account hosting của bạn để bảo vệ máy chủ. Bạn nên biết rằng, khi một máy chủ gởi thư rác, nó sẽ bị các máy chủ khác trên thế giới đánh giá xấu (Blacklist) và từ chối nhận email nhiều ngày sau.

Để bảo đảm cho máy chủ và ngăn ngừa vấn nạn thư rác, nhiều nhà cung cấp dịch vụ Webhosting chuyên nghiệp đã phải ngăn cấm việc sử dụng hàm mail() không chứng thực. Thay vào đó, người lập trình hoặc Admin website phải chuyển sang dùng PHPMailer hoặc những Module gởi email có chứng thực tài khoản với SMTP Server.

Một lý do khác là SMTP Server ngày nay có thể không còn cài đặt trên cùng một máy chủ với Web Hosting, và việc gởi Email phải xác thực tài khoản là chuyện phải làm.
 

Giải pháp thay thế

Nếu bạn đang thuê thiết kế Website, bạn cần chắc đơn vị thiết kế hiểu biết về việc này. Đối với website đã có sẵn, bạn nên chuyển sang dùng chức năng gởi Email có xác thực để tránh việc bị khóa account khi website bạn bị lợi dụng gởi Spam.

Chúng tôi xin đưa ra các phương án để các bạn lựa chọn, cấu hình để website của mình gửi mail an toàn, hợp lệ: