Hướng dẫn fix lỗi function mail() trên DirectAdmin
1. Mô tả lỗi
Một số khách hàng triển khai mã nguồn code php trên VPS chạy DirectAdmin sử dụng function mail() để chạy trong code của mình. Tuy nhiên một số trường hợp gặp lỗi function mail() không chạy, gửi mail qua hàm mail() của php có báo gửi được nhưng không thấy đến hộp thư.
- Đoạn code test function mail()
<?php
$to_email = "[email protected]";
$subject = "Simple Email Test via PHP";
$body = "Hi,nn This is test email send by PHP Script";
$headers = "From: [email protected]";
if ( mail($to_email, $subject, $body, $headers)) {
echo("Email successfully sent to $to_email...");
} else {
echo("Email sending failed...");
}
?>
2. Cách khách phục
- Kiểm tra mở port gửi/nhận mail ở csf
vi /etc/csf/csf.conf
- Tại dòng 139, 142 kiểm tra mở các port cho email 25, 465, 587, 110, 995
# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222"
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,465,587,993,995,2222"
<img src="https://i.imgur.com/CO1gg62.png">
- Reload lại csf
csf -r
- Build lại exim
Mở port như ở trên và kiểm tra lại, nếu chưa được build lại exim như hướng dẫn ở dưới:
cd /usr/local/directadmin/custombuild
./build update
./build set exim yes
./build set eximconf yes
./build set eximconf_release 4.5
./build set spamassassin yes
./build update
./build exim
./build exim_conf
3. Kiểm tra
- Chạy test
- Kết quả
Tham khảo: https://help.directadmin.com/item.php?id=51
Xin cảm ơn!
Khi cần hỗ trợ xin liên hệ với chúng tôi:
Công ty phần mềm Nhân Hòa
- Trụ sở Hà Nội: 32 Võ Văn Dũng, Đống Đa, Hà Nội
- Chi nhánh HCM: 270 Cao Thắng (nối dài), Phường 12, Quận 10, TP HCM
- Hotline: 19006680