email — почта PHP не отправляется на сайт с использованием сервера Ras Pi LAMP

Я запускаю свой сайт начальной загрузки на сервере Raspberry Pi LAMP и получаю сообщение «Ошибка!» при отправке сообщения с помощью контактной формы, форма использует два файла с использованием PHP Mail, и контактная форма находится на домашней странице, вот код:

Контактная форма на index.html:

<div class="col-sm-12">
<form class="form-horizontal" action="assets/php/contactForm.php" method="post" role="form" id="contactForm">
<div class="form-group">
<div class="col-sm-6">
<input type="text" name="name" class="form-control" placeholder="Name">
</div>
<div class="col-sm-6">
<input type="text" name="contactEmail" class="form-control" placeholder="Email">
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<textarea name="message" class="form-control" rows="8" placeholder="Message"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="submit" class="btn btn-theme ladda-button" data-style="expand-left">
<span class="ladda-label">Submit</span>
</button>
</div>
</div>
</form>

contactForm.php

<?php
include("include/settings.php");

if(isset($_POST['name']) && isset($_POST['contactEmail']) && isset($_POST['message'])){
$name = $_POST['name'];
$from = $_POST['contactEmail'];
$message = $_POST['message'];

$subject = "Message from " . $name;

if (mail ($to, $subject, $message, $from)) {
$response = array('sent' => 1);
echo json_encode($response);
} else {
$response = array('sent' => 0);
echo json_encode($response);
}
}
?>

settings.php

<?php

// Contact
$to = '[email protected]';
$subject = 'Contact Form from website';

?>

(адрес электронной почты удален и заменен на xxxxxxx только для этого поста в целях конфиденциальности)

Любая идея, почему я получаю «Ошибка!» при использовании формы?

1

Решение

Из командной строки вашего Pi вы можете проверить следующее

mail -s "Test Email" [email protected] < /dev/null

чтобы проверить, что Pi готов отправить письмо. Если нет, вам может потребоваться установить какой-либо почтовый сервер (большинство руководств указывают на постфикс, но есть и другие). Если вы хотите установить postfix, используйте следующее

sudo apt-get install postfix

Кроме того, в своем файле /etc/php5/apache2/php.ini проверьте также, что установлен параметр sendmail_path.

2

Другие решения

Вы не поделились какими-либо конкретными деталями конфигурации, хотя приведенный выше код должен разрешить отправку электронного письма.

Вы должны убедиться, что адрес электронной почты существует@hotmail.co.uk, поэтому попробуйте использовать адрес электронной почты любого другого провайдера и проверьте. Код вроде нормально.

0

По вопросам рекламы [email protected]