$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // 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@gmail.com";
$mail->Password = "password";
$mail->SetFrom("example@gmail.com");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("email@gmail.com");
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message has been sent";
}
Этот код был проверен и работал для меня.
Возможно, вам нужно $mail->SMTPSecure = 'ssl';
Также убедитесь, что у вас нет двух шагов проверка включена для этой учетной записи, так как это может вызвать проблемы.
ОБНОВЛЕНО
Вы можете попробовать изменить $ mail-> SMTP на:
$mail->SMTPSecure = 'tls';
Это стоит отметить, что некоторые SMTP-серверы блокируют соединения. Некоторые SMTP-серверы не поддерживают соединения SSL
(или TLS
).