электронная почта — PHP MAILER GMAIL SMTP ОШИБКА

В настоящее время я нахожусь в режиме тестирования для своего проекта и настроил библиотеку PHPMAILER (версия 5.2.9) и хотел бы генерировать электронные письма, используя SMTP Gmail.

Я настроил скрипт в моей локальной системе, но когда скрипт выполняется, он продолжает ждать ответа локального хоста, хотя я указал адрес сервера smtp.

В настоящее время я использую следующее:

PHP версия 5.4.7
XAMPP версия 1.8.1 (она устарела, я знаю)
версия phpmailer — 5.2.9

ниже скрипт:

require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->SMTPDebug = 3;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'xxx';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

$mail->From = '[email protected]';
$mail->FromName = 'test';
$mail->addAddress('[email protected]');
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}

Спасибо

0

Решение

Ваш код должен быть:

require 'phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "yourpassword";

//Set who the message is to be sent from
$mail->setFrom('[email protected]', 'First Last');
$mail->addReplyTo('[email protected]', 'First Last');
$mail->addAddress('[email protected]', 'John Doe');
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}

Там нет варианта для $mail->SMTPDebug = 3;

0

Другие решения

Таким образом, похоже, что проблема была с настройкой в ​​файле php.ini. без комментариев; extension = php_openssl.dll путем удаления предыдущего; и это сработало.

0

Убедитесь, что ваш скрипт phpmailer работает нормально, если нет проблем с почтовой программой, войдите под своей учетной записью gmail и перейдите -> настройки gmail.
Теперь отметьте параметр разрешить менее безопасный в настройках Gmail.
По умолчанию он выключен

Разрешить менее безопасные приложения: OFF

Убедитесь, что этот параметр включен.

После этого запустите ваш скрипт из браузера.

если вы не нашли ссылку, нажмите здесь, чтобы перейти
https://myaccount.google.com/security#activity

0

Try if SMTP issues + using TSL+ Gmail
<?php
include'PHPMailer/PHPMailerAutoload.php';

include "PHPMailer/class.phpmailer.php"; // include the class name
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP

$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);

//$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
//$mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for GMail
$mail->Host = "smtp.gmail.com";
$mail->Port = 587; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "mypassword";
$mail->addReplyTo("[email protected]","user");
$mail->SetFrom("[email protected]","My Site");
$mail->Subject = "Your Gmail SMTP Mail";
$mail->Body = "Hi, your first SMTP mail via gmail server has been received.";
$mail->AddAddress("[email protected]");
if(!$mail->Send()){
echo "Mailer Error: " . $mail->ErrorInfo;
}
else{
echo "Message has been sent";
}
?>
0
По вопросам рекламы [email protected]