Я сделал контактную форму и, очевидно, хотел бы получить письмо с подтверждением при заполнении пользователем этой формы на моем сайте.Ошибка PHPMailer - Ошибка SMTP: данные не принимаются
Я использую PHPMailer. Когда я проверяю код на своем компьютере как localhost, все работает нормально, и подтверждающее сообщение получено правильно.
Здесь вы РНР скрипт:
<?php
$Name= $_POST['Name'];
$Email = $_POST['Email'];
$Message = $_POST['Message'];
if ($Name=='' || $Email=='' || $Message==''){
echo "<script>alert('Please fill out mandatory fields');location.href ='javascript:history.back()';</script>";
}else{
require("archivosformulario/class.phpmailer.php");
$mail = new PHPMailer();
$mail->From = $Email;
$mail->FromName = $Name;
$mail->AddAddress("[email protected]");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "Contact Form";
$mail->Body = "Name: $name \n<br />".
"Email: $Email \n<br />".
"Message: $Message\n<br />";
// SMTP Server
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Port = 465;
$mail->SMTPSecure = "ssl";
$mail->Username = "[email protected]";
$mail->Password = "mypassword";
if ($mail->Send())
echo "<script>alert('We have received your message. We will contact you shortly.');location.href ='javascript:history.back()';</script>";
else
echo "<script>alert('Error');location.href ='javascript:history.back()';</script>";
}
?>
Проблема заключается в том, когда я загрузить этот PHP скрипт на веб-хостинга (т.е. 123-reg.co.uk), то это не распространяется работу.
Сообщение об ошибке:
SMTP Error: Data not accepted
Здесь вы РНР скрипт:
<?php
$Name= $_POST['Name'];
$Email = $_POST['Email'];
$Message = $_POST['Message'];
if ($Name=='' || $Email=='' || $Message==''){
echo "<script>alert('Please fill out mandatory fields');location.href ='javascript:history.back()';</script>";
}else{
require("archivosformulario/class.phpmailer.php");
$mail = new PHPMailer();
$mail->From = $Email;
$mail->FromName = $Name;
$mail->AddAddress("[email protected]");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "Contact Form";
$mail->Body = "Name: $name \n<br />".
"Email: $Email \n<br />".
"Message: $Message\n<br />";
// SMTP Server
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->Host = "smtp.123-reg.co.uk";
$mail->SMTPAuth = true;
$mail->Port = 25;
$mail->Username = "[email protected]";
$mail->Password = "password";
if ($mail->Send())
echo "<script>alert('We have received your message. We will contact you shortly.');location.href ='javascript:history.back()';</script>";
else
echo "<script>alert('Error');location.href ='javascript:history.back()';</script>";
}
?>
Я попытался загрузки и выполнения этого сценария РНР с другой бесплатный веб-хостинг, но это было не воспользоваться.
Я как бы новичок в PHP, особенно при работе с почтовыми функциями.
В чем причина? Любая дополнительная помощь будет оценена по достоинству.
Заранее за вашу помощь.
Вы используете старую версию PHPMailer и основали свой код на устаревшем примере. [Получить последнюю версию] (https://github.com/PHPMailer/PHPMailer). Вы показали два бита кода, которые делают то же самое - я предполагаю, что второй правильный. Вам нужно показать вывод отладки, который вы видите с помощью SMTPDebug = 2. Если вы используете 123-reg, я вам жаль. – Synchro
Спасибо за ваш комментарий, Synchro. Я использую PHPMailer 5.2.4, который, я думаю, является последней версией PHPMailler. Вы рекомендуете мне другой веб-хостинг? Который из? – laluk
Нет, 5.2.4 устарели. Было бы быстрее для вас просто нажать ссылку, которую я вам дал, а не набирать этот комментарий. Я бы порекомендовал gandi.net для хостинга; не так дешево, как 123, но они действительно выполняют свою работу должным образом. – Synchro