Error: smtp connect() failed khi dùng PHPMailer

1. Dấu hiệu lỗi “SMTP Error: Could not connect to SMTP host”

Bạn có thể nhìn thấy điều này SMTP connect() failed hoặc Called Mail() without being connected trong output debug. Nó là thông báo rằng PHPMailer gặp một ít vấn đề, bạn cấu hình dns thất bại, Tường lửa của webservers (ví dụ như nhà cung cấp GoDaddy) hoặc kết nối mạng có vấn đề.

Có nghĩa là PHPMailer không thể liên lạc với máy chủ SMTP bạn đã chỉ định trong cấu hình, nhưng nó cũng không nói rõ lý do chính xác.

2. Nguyên nhân và cách khắc phục

Có 2 nguyên nhân chính gây ra lỗi trên:

a. Chưa bật openssl

  • Bạn hãy tìm extension=php_openssl.dll  trong php.ini.
  • Xóa dấu ; trước extension=php_openssl.dll
  • Nếu không tìm thấy như trên, bạn có thể thêm vào 1 dòng extension=php_openssl.dll

b. Hệ thống Firewall của VPS đã block các cổng SMTP ra 25, 465 và 587

csffirewall

  • Bạn có thể tắt hệ thống Firewall để khắc phục.

– Đối với trong CWP(centos web panel) hệ thống Firewall chính là CSF Firewall Bạn có thể mở chặn các port ra bằng các chỉnh file /etc/csf/csf.conf

– Bạn có thể truy cập đường dẫn này: http://<ip_servers>:2030/index.php?module=file_editor&file=/etc/csf/csf.conf

  • Tìm các dòng đoạn sau:
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,2030,2031,587,993,995"

# Allow outgoing IPv6 TCP ports
TCP6_OUT = "20,21,22,25,53,80,110,113,443,2030,2031,587,993,995"

Sau đó thêm vào các port 25, 465 và 587 còn thiếu

# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,2030,2031,587,993,995,465"

# Allow outgoing IPv6 TCP ports
TCP6_OUT = "20,21,22,25,53,80,110,113,443,2030,2031,587,993,995,465"

Sau đó reboot lại máy chủ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *