Intereting Posts
как установить pthread в ubuntu 12.10 Изменение размера изображения при загрузке php Как сохранить переменную в php, используя сеанс Создание класса базы данных PHP PDO, проблемы с ООП Как установить несколько версий XAMPP или несколько версий PHP на MAC OS X 10.7 Lion Как преобразовать динамически построенный запрос ext / mysql в подготовленный отчет PDO? Динамические URL-адреса в CSS / JS PHP / JS / JQUERY: интеллектуальный метод автоматической проверки / обновления состояния точек Как получить подстроку из строки после определенного слова Не удалось выполнить команду OCIEnvNlsCreate (). Когда я пытаюсь подключить мою базу данных оракула в php PHP gzuncompress с ошибками чтения и записи файлов идентифицировать и выполнить php-код в строке Как включить mod_deflate для файлов PHP? Преобразовать MMDDYYYY на PHP PHP Laravel: соединение не может быть выполнено, потому что целевая машина активно отказалась от него

PHPMailer не может отправлять электронную почту

Мой проект содержит функцию отправки электронной почты, являющуюся PHPMailer . Он хорошо работает для отправки электронной почты с моего локального сервера, но сегодня он прекратил отправку электронной почты, и теперь он показывает это сообщение об ошибке

 SMTP Error: Could not connect to SMTP host. 

Я добавил этот код $mail->SMTPDebug = 1; для просмотра ошибок отладки и теперь показывает мне это сообщение:

 SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: The requested name is valid, but no data of the requested type was found. (0) SMTP Error: Could not connect to SMTP host 

Я уже enabled extension=php_openssl.dll в php.ini .

Это мой код:

 $mail = new PHPMailer(); $mail->SMTPSecure = 'ssl'; $mail->IsSMTP(); $mail->Username = "myemail@gmail.com"; // your GMail user name $mail->Password = "password"; $mail->AddAddress($email); // recipients email $mail->FromName = "username"; // readable name $mail->IsHTML(true); $mail->Subject = "title"; $mail->Body = " Message"; $mail->SMTPDebug = 1; $mail->Host = "ssl://smtp.gmail.com"; // GMail $mail->Port = 465; $mail->IsSMTP(); // use SMTP $mail->SMTPAuth = true; // turn on SMTP authentication $mail->From = $mail->Username; if($mail->Send()){ } else { } 

благодаря

Related of "PHPMailer не может отправлять электронную почту"

Об этом обычно сообщается как проблема PHPMailer (и есть много дубликатов этого вопроса), но почти всегда это связано с локальным сбоем DNS, блокировкой брандмауэра или другой сетевой проблемой в вашей локальной сети.

Во-первых, убедитесь, что вы используете последний PHPMailer .

Не используйте SSL на порту 465, он устарел с 1998 года и используется только продуктами Microsoft, которые не получили заметку; вместо этого используйте TLS на порту 587:

 $mail->SMTPSecure = 'tls'; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; 

или более лаконично:

 $mail->Host = 'tls://smtp.gmail.com:587'; 

Вы можете подключиться к этому, выполнив некоторые команды на своем сервере (вам понадобятся dnsutils и telnet ). Первая проверка DNS работает:

 dig +short smtp.gmail.com 

Вы получите что-то вроде этого, если ваш DNS работает:

 gmail-smtp-msa.l.google.com. 173.194.67.108 173.194.67.109 

Затем попробуйте установить telnet на хост на нужном порту:

 telnet smtp.gmail.com 587 

Это должно дать вам что-то вроде этого:

 Trying 173.194.67.109... Connected to gmail-smtp-msa.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP ex2sm16805587wjd.30 - gsmtp 

(Введите quit чтобы выйти из этого).

Если любой из них не работает, PHPMailer также не будет работать . Так что исправьте свою сеть, а затем повторите попытку. Если вы не контролируете свой собственный брандмауэр или DNS, вам, вероятно, придется поднять билет поддержки со своим интернет-провайдером, чтобы исправить это. Если они не исправят это, вам необходимо заменить своего интернет-провайдера.

Вернемся в PHPMailer, вы можете получить обратную связь более низкого уровня в соединении, установив:

 $mail->SMTPDebug = 4; 

Простой поиск в Google показал этот форум – http://forums.devshed.com/php-development-5/unable-to-find-the-socket-transport-ssl-667689.html