PHP-файл контактной формы неправильно настроен для электронной почты SMTP и не отправляется

#php #smtp #contact-form

#php #smtp #контактная форма

Вопрос:

Я настроил форму электронной почты на своем сайте, добавил php-файл, но он не отправляет форму на мой адрес электронной почты. Я связался со своим веб-хостингом, и они ответили: «Вам нужно будет использовать скрипт, который поддерживает SMTP для отправки, а не sendmail (), который использует текущий скрипт». Что это значит? Я неправильно настроил свой php-файл? Я включил свой php-файл ниже. В настоящее время форма размещена здесь http://www.rockclick.co.uk/contact.htm

 <script><?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];
header('Content-Type: application/json');
if ($name === ''){
print json_encode(array('message' => 'Name cannot be empty', 'code' =>    0));
exit();
}
if ($email === ''){
print json_encode(array('message' => 'Email cannot be empty', 'code' =>   0));
exit();
} else {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)){
print json_encode(array('message' => 'Email format invalid.', 'code' => 0));
exit();
}
}
if ($subject === ''){
print json_encode(array('message' => 'Subject cannot be empty', 'code' => 0));
exit();
}
if ($message === ''){
print json_encode(array('message' => 'Message cannot be empty', 'code'   => 0));
exit();
}
$content="From: $name nEmail: $email nMessage: $message";
$recipient = "enquiries@rockclick.co.uk";
$mailheader = "From: $email rn";
mail($recipient, $subject, $content, $mailheader) or die("Error!");
print json_encode(array('message' => 'Email successfully sent!', 'code'   => 1));
exit();
?></script>
  

Комментарии:

1. зачем использовать теги скрипта для php?

2. Я думал, что должен?

3. Хорошо, я удалил теги <script>, но это все еще не работает!

4. You would need to use a script which supports SMTP for sending not sendmail() which is what the current script is using они уже сказали вам, в чем проблема. в mail функциях используется инструмент sendmail по умолчанию. Я бы рекомендовал использовать некоторую библиотеку для электронной почты; например, PHPMailer

5. Добавлен ответ на ваш вопрос. Если мое объяснение непонятно, пожалуйста, приложите свой код, в котором вы фактически передаете значения на серверную часть, чтобы я мог объяснить дальше.

Ответ №1:

В конце концов я не смог заставить это работать, поэтому сдался и полностью удалил форму. Похоже, мой веб-хостинг не поддерживает формы электронной почты. Если у кого-нибудь есть рабочая форма электронной почты, которая отправляет электронное письмо на адрес gmail, пожалуйста, не стесняйтесь размещать ее здесь! Я погуглил и буквально потратил на это весь день, и это побило меня.