PHP 使用 Ras Pi LAMP 服务器无法在网站上发送邮件
PHP Mail not sending on website using Ras Pi LAMP server
我 运行 我的 bootstrap 网站在 Raspberry Pi LAMP 服务器上,我在使用联系表发送消息时收到 'Error!',该表格使用两个文件使用 PHP 邮件,联系表格在主页上,代码如下:
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 = 'xxxxxxx@hotmail.co.uk';
$subject = 'Contact Form from website';
?>
(出于隐私原因,电子邮件地址已删除并替换为 xxxxxxx post)
知道为什么我在使用表单时得到 'Error!' 吗?
您没有分享任何具体的配置细节,但上面的代码应该可以发送电子邮件。
您必须确保电子邮件地址@hotmail.co.uk 存在,因此请尝试使用任何其他提供商的电子邮件地址并进行检查。代码似乎很好。
在你的 Pi 上的命令行中,你可以测试以下内容
mail -s "Test Email" xxxxxxx@hotmail.co.uk < /dev/null
检查 Pi 是否已准备好发送邮件。如果没有,您可能需要安装某种邮件服务器(大多数指南指向 postfix,但也有其他的)。如果确实要安装 postfix,请使用以下
sudo apt-get install postfix
此外,在您的 /etc/php5/apache2/php.ini 文件中,还要检查 sendmail_path 选项的设置。
我 运行 我的 bootstrap 网站在 Raspberry Pi LAMP 服务器上,我在使用联系表发送消息时收到 'Error!',该表格使用两个文件使用 PHP 邮件,联系表格在主页上,代码如下:
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 = 'xxxxxxx@hotmail.co.uk';
$subject = 'Contact Form from website';
?>
(出于隐私原因,电子邮件地址已删除并替换为 xxxxxxx post)
知道为什么我在使用表单时得到 'Error!' 吗?
您没有分享任何具体的配置细节,但上面的代码应该可以发送电子邮件。
您必须确保电子邮件地址@hotmail.co.uk 存在,因此请尝试使用任何其他提供商的电子邮件地址并进行检查。代码似乎很好。
在你的 Pi 上的命令行中,你可以测试以下内容
mail -s "Test Email" xxxxxxx@hotmail.co.uk < /dev/null
检查 Pi 是否已准备好发送邮件。如果没有,您可能需要安装某种邮件服务器(大多数指南指向 postfix,但也有其他的)。如果确实要安装 postfix,请使用以下
sudo apt-get install postfix
此外,在您的 /etc/php5/apache2/php.ini 文件中,还要检查 sendmail_path 选项的设置。