为啥我的提交按钮不能将信息发送到我想要的电子邮件? (PHP)
Posted
技术标签:
【中文标题】为啥我的提交按钮不能将信息发送到我想要的电子邮件? (PHP)【英文标题】:Why won't my submit button send info to my desired email? (PHP)为什么我的提交按钮不能将信息发送到我想要的电子邮件? (PHP) 【发布时间】:2021-06-26 04:38:33 【问题描述】:我正在尝试让我的提交按钮将姓名、电子邮件和消息发送到我想要的地址。当我点击发送时,我得到一个页面,上面写着“此页面无法正常工作 - HTTP 错误 405”。 一些注意事项:我正在使用 Visual Studio 代码并使用他们的实时服务器扩展来测试它。我在 html 中有脚本标签,将它链接到我的 php 文件(不确定这是否重要,因为它已经在表单元素下链接?)“contact.php”是我的 php 文件。我是个菜鸟,所以我希望我犯了一个简单的错误。
// MY PHP
<?php
$userName = $_POST['name'];
$userEmail= $_POST['email'];
$message= $_POST['message'];
$to = "***example@gmail.com";
$body = "";
$body .= "From: ".$userName. "\r\n";
$body .= "Email: ".$userEmail. "\r\n";
$body .= "Message: ".$message. "\r\n";
mail($to,$body);
?>
// MY HTML
<form action="contact.php" method="POST">
<h2>Send Message</h2>
<div class="inputbox">
<input type="text" name="name" required="required">
<span>Full Name</span>
</div>
<div class="inputbox">
<input type="text" name="email" required="required">
<span>Email</span>
</div>
<div class="inputbox">
<textarea required="required" name="message"></textarea>
<span>Type your Message...</span>
</div>
<div class="inputbox">
<input type="submit" name="" value="Send">
</div>
</form>
【问题讨论】:
这能回答你的问题吗? How can I send an email using PHP?405
是“不允许的方法”。这似乎是一个网络服务器配置错误,它不允许您发送 POST
方法。
@RichPhp 那将如何解决 405 错误?
您缺少 mail()
函数的参数。 mail($to, $subject, $body, $headers)
@Barmar 在上述问题中,他只是错过了一个关于他所犯错误的论点。所以我建议使用相同的 mail() 函数工作或完成的问题。在上面的问题中,建议有一个关于使用 mail() 或其他更好的邮件库的很好的解释。这就是我建议上述问题的主要原因
【参考方案1】:
如果您在同一个文件中同时编写 HTML 和 PHP 代码,那么您需要将该单个文件保存为 contact.php。
在 PHP 代码中也请设置条件以避免像 未定义索引这样的警告
另外邮件函数必须至少有3个参数1.到2.主题3.正文
见下面代码
<?php
// set condition
if(!empty($_POST))
$userName = $_POST['name'];
$userEmail= $_POST['email'];
$message= $_POST['message'];
$to = "***example@gmail.com";
$body = "";
$body .= "From: ".$userName. "\r\n";
$body .= "Email: ".$userEmail. "\r\n";
$body .= "Message: ".$message. "\r\n";
// set subject name as second param
mail($to,"test",$body);
?>
【讨论】:
以上是关于为啥我的提交按钮不能将信息发送到我想要的电子邮件? (PHP)的主要内容,如果未能解决你的问题,请参考以下文章