发送表单详细信息到电子邮件
问题描述:
我创建了一个表单和PHP发送表单详细信息到我的电子邮件。但通过本地主机运行通过wampserver的网页时,它会显示一个错误“警告:)邮件(:无法连接在本地主机"端口" 25至邮件服务器,验证您的" SMTP "和" SMTP_PORT "设置在php.ini或使用在第22行的C:\ wamp \ www \ My \ web \ PHP \ ContactUs.php中创建ini_set()。我找不到在哪里线22发送表单详细信息到电子邮件
<div class="container">
<form name="htmlform" method="POST" action="../PHP/ContactUs.php">
<label for="name">Name</label>
<input type="text" id="name" name="name" placeholder="Your Name">
<label for="email">Email Address</label>
<input type="text" id="email" name="email" placeholder="Your Email Address">
<label for="phone">Phone Number</label>
<input type="text" id="phone" name="phone" placeholder="Your Phone Number">
<label for="Message">Message</label>
<textarea id="message" name="message" placeholder="Write You Something" style="height:200px"></textarea>
<input type="submit" value="Submit">
</form>
<?php
//if "email" variable is filled out, send email
if (isset($_REQUEST['email'])) {
//Email information
$admin_email = "[email protected]";
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$phone = $_REQUEST['phone'];
$message = $_REQUEST['message'];
//send email
mail($admin_email, "$name", "$phone", "$message", "From:" . $email);
//Email response
echo "Thank you for contacting us!";
}
//if "email" variable is not filled out, display the form
else {
?>
<?php
}
?>
答
您应该使用标题。您可以使用任何第三方服务器测试工具来测试localhost中的邮件。例如: - “测试邮件服务器工具”
<?php
$admin_email = "[email protected]";
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$phone = $_REQUEST['phone'];
$message = $_REQUEST['message'];
if(!empty($email))
{
$headers = 'From:'.'[email protected]' . "\r\n" .
'Reply-To: Pink maid beauty saloon <[email protected]>' . "\r\n" .
'X-Mailer: PHP/' . phpversion() . "\r\n" .
'Content-type: text/html; charset=iso-8859-1';
//mail (from,subject,body,headers)
mail($admin_email,"Your saloon", "$name "."$phone "."$message", $headers);
echo "Email successfully sent";
}
mysqli_close($con);
?>
而不是使用'$ _REQUEST'(这将既$ _ POST和$ _GET方法的工作),这将是更好地使用$ _POST。该错误表明您正在尝试在您的开发系统上执行此操作,并且没有运行邮件服务器 – RamRaider
@RamRaider如何设置邮件服务器? –
这是一个相当广泛的主题,你不得不问在你的开发系统上设置你自己的邮件服务器是否值得花费时间和精力,当PHP脚本将在晚些时候在因特网上托管?我会在php代码中添加一些逻辑来检查你是否在'localhost'上运行,如果是的话不发送邮件。另外,尝试谷歌搜索''免费邮件服务器的Windows“'或看看https://stackoverflow.com/questions/16830673/wamp-send-mail-using-smtp-localhost〜那里有很多解决方案 – RamRaider