PHPMailer для использования Gmail в качестве SMTP-сервера. Не удалось подключиться к SMTP-хосту.Ошибка почтовой программы: ошибка SMTP: не удалось подключиться к узлу SMTP - PullRequest
11 голосов
/ 29 мая 2011

Я пытаюсь использовать phpMailer для отправки подтверждающих сообщений пользователям по электронной почте.мой код такой:

<?php
include("class.phpmailer.php");
include("class.smtp.php");
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server
$mail->Port = 465; // set the port to use
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "sender@gmail.com"; // your SMTP username or your gmail username
$mail->Password = "mypasswrord"; // your SMTP password or your gmail password
$from = "webmaster@example.com"; // Reply to this email
$to="receiver@yahoo.com"; // Recipients email ID
$name="Jersey Name"; // Recipient's name
$mail->From = $from;
$mail->FromName = "Webmaster"; // Name to indicate where the email came from when the recepient received
$mail->AddAddress($to,$name);
$mail->AddReplyTo($from,"Webmaster");
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(true); // send as HTML
$mail->Subject = "Sending Email From Php Using Gmail";
$mail->Body = "This Email Send through phpmailer, This is the HTML BODY "; //HTML Body
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}
?>

я уже включил ssl в php.ini.

PS> sender@gmail.com - это электронное письмо с маской для защиты конфиденциальностино я поставил в этой части настоящий адрес электронной почты

Ответы [ 4 ]

16 голосов
/ 01 июня 2011

в вашем php.ini убедитесь, что вы раскомментировали строку с

extension=php_openssl.dll
0 голосов
/ 13 марта 2012

неправильно:

$mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server

хорошо:

$mail->Host = "smtp.gmail.com"; // specify main and backup server
0 голосов
/ 29 мая 2011

На этой странице есть код, который автор утверждает, что "работал безупречно".

Единственное реальное различие, которое я вижу между его и вашим, состоит в том, что его имеет:

$mail->Mailer = "smtp";

Полагаю, я бы начал с его кода именно для того, чтобы посмотреть, работает ли он, а затем отладил.

0 голосов
/ 29 мая 2011

С здесь

2) Закомментируйте следующие строки кода в class.phpmailer.php

/*
if(strstr($hosts[$index], ":"))
list($host, $port) = explode(":",
$hosts[$index]); else 
*/

Попробуйте, если вы еще этого не сделали.

...