2013-07-16 14 views
5

Tôi cố gắng google tất cả các buổi sáng và tôi nghĩ rằng tôi cần Stackoverflow ngay bây giờ!Lỗi PHPMailer: SMTP -> LRI: Không thể kết nối với máy chủ

Tôi đã viết một kịch bản đơn giản để gửi một mail (từ hotmail để gmail) nhưng tôi nhận được lỗi này:

SMTP -> LỖI: Không thể kết nối đến máy chủ: Một nỗ lực kết nối thất bại vì các bên kết nối đã làm không phản hồi đúng sau một khoảng thời gian hoặc kết nối được thiết lập không thành công do máy chủ được kết nối không phản hồi. (10060) Kết nối SMTP() không thành công. Lỗi

Đây là mã:

<?php 
require_once("../includes/phpMailer/class.phpMailer.php"); 
require_once("../includes/phpMailer/class.smtp.php"); 


$to_name = "RECEIVER NAME"; 
$to = "[email protected]"; 


$subject = "Mail test at " . strftime("%T", time()); 

$message = "This is a test message"; 
$message = wordwrap($message, 70); 


$from_name = "MY NAME"; 
$from = "[email protected]"; 


$mail = new PHPMailer(); 

$mail->IsSMTP(); 
$mail->SMTPDebug = 2; 
$mail->Host = "smtp.live.com"; 
$mail->Port = 25; 
$mail->SMTPAuth = true; 
$mail->Username = "MY USERNAME (hotmail)"; 
$mail->Password = "MY PASSWORD (hotmail)"; 


$mail->FromName = $from_name; 
$mail->From = $from; 
$mail->AddAddress($to, $to_name); 
$mail->Subject = $subject; 
$mail->Body = $message; 

$result = $mail->Send(); 

echo $result ? 'Sent' : 'Error'; 

?> 

thông tin khác là thậm chí không qua đường bưu điện tiêu chuẩn() chức năng làm việc và kiểm tra thông tin php i thấy câu này:

sendmail_from - MAIL PROPER MY (hotmail)

sendmail_path - không có giá trị

SMTP - localhost

smtp_port - 25

Cảm ơn bạn !!

+0

là công ty lưu trữ/isp chặn cổng? – fortune

Trả lời

4

Tôi tin rằng cổng 25 bị chặn trên smtp.live.com. Tôi không thể kết nối với smtp.live.com:25 từ đây. Hãy thử sử dụng cổng 587 thay vào đó, với TLS. Vì vậy, nó sẽ là:

$mail->Port = 587; 
$mail->SMTPSecure = 'tls'; 
+0

Tôi thử, nhưng tôi nhận được hai lỗi: Điều này cho cổng: SMTP -> FROM SERVER: 220 BLU0-SMTP125.phx.gbl Dịch vụ Microsoft ESMTP MAIL [...] Dịch vụ đóng kênh truyền SMTP Connect() không thành công . Lỗi Và điều này cho tls: Cảnh báo: stream_socket_enable_crypto() [streams.crypto]: dòng này không hỗ trợ SSL/crypto trong C: \ wamp \ www \ photo_gallery \ includes \ PHPMailer \ class.smtp.php trên đường dây 254 Và cũng có lỗi này vào cuối: KHÁCH HÀNG -> SMTP: thoát SMTP -> TỪ MÁY CHỦ: SMTP -> LRI: Máy chủ SMTP đã từ chối lệnh thoát: SMTP Connect() không thành công. Lỗi – johnnyfittizio

+0

có vẻ như bạn có thể chưa cài đặt các thư viện mã hóa cần thiết trên máy chủ của mình cho TLS. Bạn sẽ cần TLS hoặc SSL để gửi qua smtp.live.com. Để giải quyết sự cố, bạn có tài khoản gmail không? Nếu vậy, bạn có thể gửi qua smtp.gmail.com, không có mã hóa SSL hoặc TLS, trên cổng 25. – mti2935

+0

Có tôi có tài khoản gmail. Bạn có đề nghị thử ngược lại, gửi từ gmail tới hotmail không? – johnnyfittizio

2

Tôi tìm thấy một giải pháp cho vấn đề này, hãy thử này

Kiểm tra xem PHP của bạn đang sử dụng OpenSSL mở rộng hay không ...!

  1. Chỉnh sửa của bạn php.ini từ thư mục php cài đặt của bạn
  2. Tìm kiếm extension = php_openssl.dll
  3. Các ban đầu sẽ trông như thế này ; extension = php_openssl.dll
  4. Gỡ bỏ ';' và nó sẽ trông như thế này extension = php_openssl.dll
  5. Nếu bạn không thể tìm thấy phần mở rộng = php_openssl.dll, thêm dòng này extension = php_openssl.dll.
  6. Sau đó khởi động lại máy chủ Xampp hoặc LAMP hoặc APACHE của bạn (tùy thuộc vào loại máy chủ nào bạn đang sử dụng).

Hope phương pháp này sẽ giải quyết vấn đề của bạn ...

+1

Phew, cảm ơn! Câu trả lời này đã cứu tôi một loạt rắc rối. Phần mở rộng OpenSSL PHP không được kích hoạt theo mặc định trên một cài đặt mới, được bảo vệ (CentOS 6, PHP 5.6). – zmippie

0

Bạn có thể muốn kiểm tra các cổng hỗ trợ. Ví dụ: máy chủ của tôi hỗ trợ smtp qua cổng 25, 3535 và 80.
Sử dụng cổng 80 làm việc cho tôi