Nếu bạn gặp sự cố khi gửi mail từ trang MyBB của bạn, bạn cần xác định nguyên nhân gây ra lỗi. Các bước bên dưới sẽ giúp bạn xác định nguyên nhân gây lỗi gửi mail cho MyBB của bạn.
Trước tiên, hãy kiểm tra xem mail đã gửi có nằm trong thư mục thư rác/thư rác hay không. Mail có thể rơi vào thư mục rác vì nhiều lý do, chẳng hạn như máy chủ của máy chủ của bạn bị đưa vào danh sách đen vì gửi thư rác trước đó (thường là do khách hàng xấu).
Kiểm tra PHP Mail
MyBB dựa vào chức năng PHP Mail để gửi thư. Vì vậy, điều quan trọng là chức năng thư PHP phải hoạt động.
Đoạn mã thử nghiệm:
Tạo một tệp .php
mới với nội dung này:
<?php
error_reporting(E_ALL);
$to = 'YOUR_EMAIL@DAIPHO.COM';
if(mail($to, 'Testing mail', 'This is a mailing test to see if PHP mail works.'))
{
echo 'Mail was sent by PHP';
}
else
{
echo 'PHP could not send the mail';
print_r(error_get_last());
}
?>
Thay thế YOUR_EMAIL@DAIPHO.COM
bằng địa chỉ email của bạn nhé. Tải tệp này lên máy chủ web của bạn và duyệt đến nó để chạy thử nghiệm.
Nó sẽ nói rằng Thư được gửi bằng PHP và sẽ không có bất kỳ lỗi nào được hiển thị.
Host Restrictions
Một số webhost đặt ra các hạn chế đối với PHP Mail
. Ví dụ: một số yêu cầu địa chỉ From
phải là địa chỉ được định cấu hình trên máy chủ của họ; các máy chủ khác có thể vô hiệu hóa hoàn toàn chức năng thư PHP. Hãy kiểm tra với máy chủ lưu trữ web của bạn xem có bất kỳ hạn chế nào đối với việc gửi thư qua PHP hay không.
Nếu máy chủ lưu trữ web của bạn chỉ cho phép các trang web gửi thư từ miền riêng của chúng, hãy chỉnh sửa tệp inc/functions.php
để thử giải pháp thay thế.
Bạn tìm dòng:
mail($to, $subject, $message, $headers);
Và thêm dòng này vào phía trước:
$mail_from = "forum@ten-mien-cua-ban";
ini_set("sendmail_from", $mail_from);
Đoạn mã sẽ trở thành:
$mail_from = "forum@ten-mien-cua-ban";
ini_set("sendmail_from", $mail_from);
mail($to, $subject, $message, $headers);
Trong đoạn mã trên bạn phải thay thế forum@ten-mien-cua-ban
bằng email của bạn.
Các tham số bổ sung cho mail()
của PHP
Để đặt các tham số bổ sung được chuyển đến chương trình đã định cấu hình được sử dụng bởi hàm mail()
(khi thư PHP là Trình xử lý thư được chọn), hãy xác định chúng trong tùy chọn $config['mail_parameters']
của Tệp cấu hình:
/**
* Các tham số bổ sung cho mail() của PHP
* Chỉ được sử dụng khi 'PHP mail' được chọn làm Trình xử lý thư.
* Thông tin thêm: https://www.php.net/function.mail
*/
$config['mail_parameters'] = '';
Trước MyBB 1.8.31, giá trị này đã được định cấu hình trong Mail Settings
.