2013-07-16 4 views
5

Я пытаюсь google все утро, и мне кажется, что мне нужно Stackoverflow прямо сейчас!Ошибка PHPMailer: SMTP -> ОШИБКА: Не удалось подключиться к серверу

Я написал простой скрипт для отправки почты (от Hotmail до Gmail) , но я получаю эту ошибку:

SMTP -> ОШИБКА: Не удалось подключиться к серверу: Попытка подключения не удалась, поскольку подсоединенный партия сделала не реагировать должным образом после определенного периода времени или не удалось установить соединение, потому что подключенный хост не смог ответить. (10060) Ошибка SMTP Connect(). Ошибка

Это код:

<?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]tmail.it"; 


$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'; 

?> 

Другой информацией является то, что даже не функция стандартной почты() работает, и проверках PHP информации я нашел это:

sendmail_from - МОЙ СОБСТВЕННЫЙ MAIL (Hotmail)

sendmail_path - нет значения

SMTP - локальный

smtp_port - 25

спасибо!

+0

- это ваша хостинговая компания/ISP, блокирующая порты? – fortune

ответ

4

Я считаю, что порт 25 заблокирован на smtp.live.com. Я тоже не могу подключиться к smtp.live.com:25. Попробуйте вместо этого использовать порт 587 с TLS. Таким образом, было бы:

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

Я пытаюсь, но я получаю две ошибки: Это для порта: SMTP -> FROM SERVER: 220 BLU0-SMTP125.phx.gbl Служба Microsoft ESMTP MAIL [...] Служба закрытия канала передачи SMTP Connect() не удалось , Ошибка И это для ДУСА: Предупреждения: stream_socket_enable_crypto() [streams.crypto]: этот поток не поддерживает SSL/криптографии в C: \ WAMP \ WWW \ photo_gallery \ включает \ PHPMailer \ class.smtp.php на линии 254 А также эта ошибка в конце: CLIENT -> SMTP: quit SMTP -> FROM SERVER: SMTP -> ОШИБКА: SMTP-сервер отклонил команду quit: SMTP Connect() не удалось. Ошибка – johnnyfittizio

+0

выглядит так: у вас могут не быть необходимые библиотеки шифрования на вашем сервере для TLS. Вам понадобится TLS или SSL для отправки через smtp.live.com. Как обходной путь, у вас есть учетная запись gmail? Если это так, вы можете отправить через smtp.gmail.com без SSL или TLS-шифрования на порт 25. – mti2935

+0

Да, у меня есть учетная запись gmail. Вы предлагаете попробовать обратное, отправить с gmail на hotmail? – johnnyfittizio

2

Я нашел решение этой проблемы, попробуйте этот

Проверьте, правильно ли ваш PHP использует OpenSSL расширения или нет ...!

  1. Корректировать php.ini из установленной папки PHP
  2. Поиск расширения = php_openssl.dll
  3. Начальная будет выглядеть следующим образом ; расширение = php_openssl.dll
  4. Удалить ';' и она будет выглядеть следующим образом расширения = php_openssl.dll
  5. Если вы не можете найти расширения = php_openssl.dll, добавьте эту строку расширения = php_openssl.dll.
  6. Затем перезапустите сервер Xampp или LAMP или APACHE (в зависимости от того, какой из них вы используете).

Надежда этот метод должен решить вашу проблему ...

+1

Фу, спасибо! Этот ответ спас меня от неприятностей. Расширение OpenSSL PHP не включено по умолчанию при новой установке, apparantly (CentOS 6, PHP 5.6). – zmippie

0

Вы можете проверить поддерживаемые порты. Например, мой хост поддерживает smtp через порты 25, 3535 и 80.
Использование порта 80 для меня работало

Смежные вопросы