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

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ủ.

Chúc các bạn thành công!

Trả lời 0

Your email address will not be published. Required fields are marked *