2 回答
TA贡献1893条经验 获得超10个赞
参见邮件功能文档
有 3 个必需参数:电子邮件目的地(收件人)、主题和消息,另外两个选项是:标头和参数。
您的代码不尊重这一点,因为您缺少添加主题作为参数。你会得到 ?mailsent 因为你使用 header("Location: index.html?mailsent") 而不进行任何测试电子邮件是否发送成功。
我建议你用这个替换你的 php 代码的最后两行
$subject = "some subject"; // you can replace it with $subject = $_POST["subject"]
$result = mail($mailTo, $subject , $txt,$headers);
if ($result){
// mail send successfully
header("Location: index.html?mailsent");
} else {
// error
}
您可以使用 error_get_last() 函数获取错误消息。
$subject = "some subject"; // you can replace it with $subject = $_POST["subject"]
$result = mail($mailTo, $subject , $txt,$headers);
if ($result){
// mail send successfully
header("Location: index.html?mailsent");
} else {
print_r(error_get_last());
}
TA贡献1777条经验 获得超3个赞
您缺少表单操作,因此 PHP 不知道如何处理您的变量数据。尝试添加method="post"内部<form>标签。像这样
<div class="contact_form">
<form action="/action_page.php" method="post">
<input type="text" id="name" name="name" placeholder="Name*">
<input class="contact_even" type="text" id="email" name="email" placeholder="Email id*">
<input type="text" id="phone" name="phone" placeholder="Phone No.">
<input class="contact_even" type="text" id="city" name="city" placeholder="City">
<textarea id="subject" name="subject" placeholder="How Can We Help You?"></textarea>
<input type="submit" value="Submit">
</form>
</div>
并且。如果您将计算机用作本地主机(使用 xampp 、 wamp 或没有托管服务的东西),则必须对配置文件进行一些更改。
也尝试一下修改后的 php 代码
<?php
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$mailFrom = $_POST['email'];
$phone = $_POST['phone'];
$city = $_POST['city'];
$message = $_POST['message'];
$title = "replace this";
$mailTo = 'support@udichi.in';
$txt = $name.'('.$phone.') from '.$city.' says:\n\n'.$message;
$headers = 'From: '.$mailFrom . PHP_EOL .'Reply-To:' .$mailFrom . PHP_EOL . 'X-Mailer: PHP/' . phpversion();
mail($mailTo,$title,$txt,$headers);
header("Location: index.html?mailsent");
}
?>
- 2 回答
- 0 关注
- 91 浏览
添加回答
举报