Пожалуйста, укажите хотя бы один адрес электронной почты получателя: -Ошибка отправителя при использовании php mailer - PullRequest
0 голосов
/ 17 апреля 2019

Я использую PHPMailer на своем веб-сайте, но он возвращает ошибку:

Вы должны указать хотя бы один адрес электронной почты получателя.Я проверил следующие страницы в поисках ответов: https://github.com/PHPMailer/PHPMailer/issues/441 https://github.com/PHPMailer/PHPMailer/issues/429

Ни одна из них не решила мою проблему.

Это способ ее установки:

<?php
$conn=mysqli_connect("localhost","sar","siarth2");
mysqli_select_db($conn,"test");
$Email=$_REQUEST["Email"];
$query=mysqli_query($conn,"select * from user where Email='$Email'");
$row=mysqli_fetch_array($query,MYSQLI_ASSOC);

require 'PHPMailer-master/PHPMailerAutoload.php';

$mail = new PHPMailer();

  $mail->Host = "ssl://smtp.gmail.com";
  $mail->SMTPAuth = TRUE;
  $mail->Username = "sidban5679@gmail.com";
  $mail->Password = "password";
  $mail->Port =466;
  $mail->From = "sidban5679@gmail.com";
  $mail->FromName = "Sidharth";
  $mail->AddAddress($row["Email"]);

  $mail->isHTML(true);

  $mail->Subject = "Password";
  $mail->Body = "<i>this is your password:</i>".$row["Password"];
  $mail->AltBody = "This is the plain text version of the email content";
  if(!$mail->send())
  {
   echo "Mailer Error: " . $mail->ErrorInfo;
  }
  else
  {
   echo "Message has been sent successfully";
  }

Код SQL

INSERT INTO user (Password, FirstName, LastName, Email) VALUES ('friends34', 'Kaser ',' Baddal ',' banh5@gmail.com ');

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Вдобавок к неверному номеру порта, уязвимости SQL-инъекций, текстовым паролям, которые вы используете устаревшую версию PHPMailer и основали свой код на устаревшем примере, вы не проверяете ошибки на адрес электронной почты. Попробуйте это:

if (!$mail->addAddress($row['Email'])) {
    exit(htmlspecialchars($row['Email']) . ' is not a valid email address.');
}

(htmlspecialchars() существует, чтобы избежать добавления уязвимости XSS для идеального результата!)

0 голосов
/ 17 апреля 2019

Убедитесь, что ваши $Email и $row['Email'] возвращают любой действительный адрес электронной почты или нет. Вы можете попробовать один раз с жестко закодированным получателем.

$mail->AddAddress('receipient@example.com');

Полагаю, из вашего кода $Email и $row['Email'] имеют одинаковое значение. так что если $Email=$_REQUEST["Email"]; получает действительное письмо, вы можете использовать -
$mail->AddAddress($Email);

...