Hướng dẫn fix lỗi function mail() trên DirectAdmin

Tác giả: 01/03/2022

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 = "duydm@nhanhoa.com.vn";
   $subject = "Simple Email Test via PHP";
   $body = "Hi,nn This is test email send by PHP Script";
   $headers = "From: manhduy107@gmail.com";
 
   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
01/03/2022

Trả lời

Email của bạn sẽ không được hiển thị công khai.