2015-08-13 3 views
0

У меня есть поиск по многим другим вопросам, заданный ранее, но я до сих пор не могу найти способ решения для этого. Извините за задание этого вопроса.Электронная почта с php: [Ошибка SMTP: не удалось подключиться к SMTP-хосту]

Ниже мой PHP кодирования используется для отправки по электронной почте:

<?php 
require("class.phpmailer.php"); // path to the PHPMailer class 

$mail = new PHPMailer(); 

$mail->IsSMTP(); // telling the class to use SMTP 
$mail->Mailer = "smtp"; 
$mail->Host = "ssl://smtp.gmail.com"; 
$mail->Port = 465; 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "[email protected]"; // SMTP username 
$mail->Password = "xxxxxxxx"; // SMTP password 

$mail->From  = "[email protected]"; 
$mail->AddAddress("[email protected]"); 

$mail->Subject = "First PHPMailer Message"; 
$mail->Body  = "Hi! \n\n This is my first e-mail sent through PHPMailer."; 
$mail->WordWrap = 50; 

if(!$mail->Send()) { 
echo 'Message was not sent.'; 
echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
echo 'Message has been sent.'; 
} 
?> 

Файл class.phpmailer.php помещается в одном файле с предыдущим PHP документ. Я также изменил содержание class.phpmailer.php следующим образом:

var $Host  = 'ssl://smtp.gmail.com'; 

    var $Port  = 465; 

Я также изменить содержание php.ini:

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
SMTP = smtp.gmail.com 
; http://php.net/smtp-port 
smtp_port = 465 

; For Win32 only. 
; http://php.net/sendmail-from 
sendmail_from = [email protected] 

Функция OpenSSL также включена в php.ini :

extension=php_openssl.dll 

Он также показывает, что openssl включен в php-информации.

Но после этого ошибка снова проявилась. Поэтому я хотел бы попросить решение для этого.

Также, если мне нужно подключиться к определенному SMTP-серверу, достаточно изменить только кодировку и php.ini?

Спасибо, парень очень много. Это очень важно для меня и надеюсь, что эта проблема может быть решена.

After you guy helping me, I have tried more method to solve the problem.

I have change the SMTPSecure from "ssl" to "tls".

$mail->SMTPSecure = 'tls';

The error change from "SMTP -> ERROR: Password not accepted from server" to "SMTP -> ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: No such host is known"

Further, if I changed the host from smtp.gmail.com to my IP address,

the error became "ERROR: Failed to connect to server: connection attempt failed because the connection object has for some time did not respond correctly, or connection establishment failed because the host connection can not respond"

Many thanks to all of you.

+2

Вы подтвердили, что smtp.gmail.com действительно доступен для вашего хоста? ваш php-код может быть идеальным, и проблема находится где-то дальше вверх по течению. –

+0

Как я могу подтвердить, что это доступно для моего хоста? Я новичок в php и почтовой функции. Извините за это. –

+1

Попробуйте выполнить команду pinging с помощью командной строки или терминала. – jbman223

ответ

0

Я думаю, что есть проблемы с брандмауэром сервера. Можете ли вы попытаться остановить серверный брандмауэр для целей тестирования и снова проверить это.

+0

Я попытался обратиться выключите брандмауэр окна и запустите кодировку снова, но та же ошибка снова выскочит. Спасибо, что помогли мне. –

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