ошибка auth005 при попытке отправить электронное письмо с использованием php на сервере xampp - PullRequest
0 голосов
/ 22 апреля 2020

Я сейчас использую xampp для проверки моего php кода для форм. я пытаюсь отправить форму на мой электронный адрес при отправке. я редактировал sendmail.ini и php .ini, также пытался использовать laragon и все еще получал ошибки. когда я проверяю страницу ошибки sendmail в моем xampp, я получаю это обратно 20/04/21 16:28:07: (# AUTH005) Слишком много неудачных попыток авторизации. после запуска моего php кода на локальном сервере.

input[type=text], select, textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  margin-top: 6px;
  margin-bottom: 16px;
  resize: vertical;
}

input[type=submit] {
  background-color: #4CAF50;
  color: white;
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

input[type=submit]:hover {
  background-color: #45a049;
}
  <form action="action_page.php" method="post">
    <label for="fname">First Name</label>
    <input type="text" id="fname" name="firstname" placeholder="Your name..">

    <label for="lname">Last Name</label>
    <input type="text" id="lname" name="lastname" placeholder="Your last name..">

   <label for="email">Email</label>
	<input type="text" id="email" name="email" placeholder="Your email..">

    <label for="subject">Subject</label>
    <textarea id="subject" name="subject" placeholder="Write something.." style="height:200px"></textarea>

    <input type="submit" value="Submit">
  </form>
    <?php
// define variables and set to empty values
$firstname = $lastname = $email = $comment = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $firstname = test_input($_POST["firstname"]);
  $lastname = test_input($_POST["lastname"]);
  $email = test_input($_POST["email"]);
  $subject = test_input($_POST["subject"]);
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

<?php
echo "<h2>Your Information:</h2>";
echo $firstname;
echo "<br>";
echo $lastname;
echo "<br>";
echo $email;
echo "<br>";
echo $subject;
echo "<br>";
?>
<?php
// the message
$msg = "New contact submission";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
mail("websiteforms.mccomasinsurance@yahoo.com","form sub.",$msg);
?>

sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=ssl
error_logfile=error.log
auth_username=myemail
auth_password=
pop3_server=
pop3_username=
pop3_password=
force_sender=
force_recipient=
hostname=localhost

php.ini
; For Win32 only.
; http://php.net/smtp
;SMTP=localhost
; http://php.net/smtp-port
;smtp_port=25
...
sendmail_from = myemail
....
sendmail_path ="C:\xampp\sendmail\sendmail.exe"

1 Ответ

0 голосов
/ 22 апреля 2020

При локальной разработке тестирование электронной почты является постоянной проблемой. Настройка сервера sendmail, особенно на Windows, не простая вещь; это также приводит к ряду проблем, когда вы хотите использовать внешний SMTP. Я вижу, что вы настроили SMTP-сервер Google; но это определенно проблема по нескольким причинам. Одним из многих является то, что у вас локально не может быть действительного, распознанного сертификата SSL, а только самогенерируемый и локально подписанный сертификат из вашего P C, для целей тестирования. Поэтому он, безусловно, будет отклонен каждым сервером на Inte rnet.

. Мой совет - при тестировании отправки электронной почты используйте небольшой локальный сервер при разработке на своем P C. Я использую MailSlurper . Это очень просто и после запуска позволяет увидеть панель с полученными электронными письмами на http://localhost:8080.

Попробуйте установить MailSlurper, отключить SendMail из php .ini и установить php .ini с правильным протоколом, SMTP-хост и порт. В моей локальной конфигурации у меня есть такой вид отправки электронной почты:

protocol = 'smtp';
smtp_host = 'localhost';
smtp_port = 2500;
starttls = FALSE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...