SMTP Error: Could not connect to SMTP host. Message could not be sent.Không thể kết nối với máy chủ SMTP
Mailer Error: SMTP Error: Could not connect to SMTP host.
Tôi dường như không thể tìm cách làm cho PHPMailer hoạt động trong CentOS. Mail hoạt động tốt trong Windows với XAMPP nhưng tôi luôn gặp lỗi này dưới Linux.
Máy chủ SMTP là Lotus Domino đang nghe trên cổng 25, máy CentOS KHÔNG có tường lửa nào và điều lạ là ngay cả thư() không hoạt động. Nó trả về không có gì (trong khi trên Windows trả về 1). Nếu tôi gửi một email thông qua telnet thông qua máy chủ CentOS nó hoạt động tốt vì vậy tôi không nghĩ rằng đó là một vấn đề mạng. Nó phải liên quan đến PHP nhưng tôi không biết làm thế nào.
<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "192.168.x.x";
$mail->SMTPAuth = false;
$mail->From = "[email protected]";
$mail->FromName = "XXX";
$mail->AddAddress("[email protected]");
$mail->IsHTML(true);
$mail->Subject = "Test";
$mail->Body = "Test";
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>
Chỉ cần làm rõ mã ở trên hoạt động trên XAMPP (Windows).
tôi sửa lỗi sai trên PHPMailer và lỗi xảy ra ở đây (phương pháp class.smtp.php Connect()):
$this->smtp_conn = @fsockopen($host, // the host of the server
$port, // the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
// verify we connected properly
if(empty($this->smtp_conn)) {
$this->error = array("error" => "Failed to connect to server",
"errno" => $errno,
"errstr" => $errstr);
if($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '<br />';
}
return false;
}
Có vẻ như nó không thể mở Socket ...
CẬP NHẬT: Sử dụng $ mail-> SMTPDebug = 2; theo đề nghị của Alvaro sản xuất sản lượng này:
SMTP -> ERROR: Failed to connect to server: Permission denied (13)
Bạn đã thử chỉ định bằng chứng xác thực đăng nhập chưa? –
Không có. Ý bạn là sao? Bạn có nghĩa là đặt chúng là ""? – raz3r
FYI đã thử '$ mail-> SMTPAuth = true; $ mail-> Username = ""; $ mail-> Password = ""; ' vừa nãy, không may mắn. – raz3r