Я новичок в php, поэтому я написал код для тестирования, который отправит электронное письмо с помощью php. Я использую «PHPMailer-5.2.27» для отправки электронной почты с помощью SMTP на php, но когда я запускаю код, электронное письмо не отправляется. Не знаю, в чем проблема. Может кто-нибудь мне помочь!
<?php
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->Host = "smtp.gmail.com";
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "xxxxxxxx";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->Subject = "test mail";
$mail->Body = "just a test";
$mail->setFrom('[email protected]','aaaa');
$mail->addAddress('[email protected]');
if ($mail->send())
echo "mail is sent";
else
echo "something wrong ";
?>
Включите режим отладки SMTP и проверьте, какую ошибку вы получаете.
окей минутку!
вот что появляется: .............................................. .............. .................... ............ ........ .................... ........... Ошибка подключения SMTP (). github.com/PHPMailer/PHPMailer/wiki/ Устранение неполадок что-то не так
Найдите решение здесь: stackoverflow.com/questions/22927634/…
Ознакомьтесь с этой ссылкой на документацию по устранению неполадок - там много о gmail.






Предположим, вы разрешили своей учетной записи Gmail авторизовать сервер, с которого вы отправляете электронное письмо.
используйте $mail->ErrorInfo; для отладки вашей проблемы, это прояснит, какова фактическая причина отказа при отправке электронного письма, вы можете сослаться на приведенный ниже код, которым я поделился.
<?php
require "PHPMailer/PHPMailerAutoload.php";
echo !extension_loaded('openssl')?"Not Available":"Available"; //check openssl is available or not
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 2; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "**********";
$mail->SetFrom("[email protected]");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("[email protected]");
if (!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
?>
Это устаревший код. SMTPDebug = 1 ничего вам не скажет; установите его на 2.
@Synchro спасибо за исправление
Установите $ mail-> SMTPDebug = истина, используемый для отладки ошибки. Пожалуйста, используйте $ mail-> ErrorInfo, чтобы распечатать ошибку