Chào thầy, khi ghi danh khóa học hệ thống báo lỗi "Ngoại lệ - Call to undefined function PHPMailer\PHPMailer\mail()". Và khi các thành viên gửi
tin nhắn cho nhau báo lỗi "Exception - Call to undefined function PHPMailer\PHPMailer\mail()". Nhờ thầy hỗ trợ giúp. em sử dụng moodle 4.3. Em cảm ơn thầy.


Chào bạn,
Trước tiên, website cảm ơn bạn vì đã post vấn đề/ câu hỏi của bạn trên website vì rất nhiều bạn toàn nhắn tin riêng kết quả là nhiều bạn gặp vấn đề tương tự mà không có bài viết nào hướng dẫn / tham khảo!
- Trường hợp 1: Nếu trước đó bạn gửi tin nhắn và ghi danh học viên vào khóa học bình thường mà sau khi Upgrade moodle phát sinh lỗi thì bạn nên chọn phiên bản moodle khác vì có thể phiên bản moodle đó bị lỗi,
- Trường hợp 2: bạn cài moodle hoàn toàn mới (lần đầu tiên). Thì rất có thể do phiên bản PHP của bạn chưa tương thích (ví dụ Moodle 4.x thì PHP phải chạy PHP 8.X) hoặc do bạn chưa bật EXTENSION (phần mở rộng) của PHP. Bạn thử vào Site administration Server PHP info - xem phần HASH, mail, mbstring đã Enabled hoặc true hay chưa? Nếu chưa thì bạn vào Hosting phần SELECT PHP - PHP settings bật lên nha!
+ Mình cài khá nhiều trang moodle cho khách nhưng chưa bao giờ thấy gửi tin nhắn mà báo lỗi "Exception - Call to undefined function PHPMailer\PHPMailer\mail()" vì đây là chức năng có sẵn của moodle không cần cấu hình hay cài đặt gì cả!
+ Nếu bạn sử dụng localhost (mình không sử dụng nên không rành) sửa file php.ini
+ Trường hợp 3: có thể do bạn chưa cấu hình smtp.gmail.com nên báo lỗi. Bạn vào Truy cập vào Site administration > Server> Email để cấu hình.
dạ em tìm ra lỗi rồi thầy. do em chưa cấu hình smtp.gmail.com nên khi ghi danh khoa học hệ thống tự động gửi mail cho thành viên, tương tự khi nhắn tin hệ thống cũng gửi mail cho thành viên. Do chưa cấu hình smtp.gmail.com nên báo lỗi. Em cấu hình xong hết lỗi. Giờ em tìm chỗ khi ghi danh và nhắn tin hệ thống không cần gửi mail cho thành viên. Cảm ơn thầy thật nhiều!!!