为啥我的提交按钮不能将信息发送到我想要的电子邮件? (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】: 如果您在同一个文件中同时编写 HTMLPHP 代码,那么您需要将该单个文件保存为 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)的主要内容,如果未能解决你的问题,请参考以下文章

命令外部字段值随表格发送

为啥我不能使用本地主机的邮件功能发送邮件? [复制]

为啥这个 PHP 电子邮件脚本不会发送到我的 Yahoo 电子邮件?

为啥我的 php 联系表发送空白电子邮件? [复制]

相同的表格,不同的页面

我如何以邮件形式发送表单数据并仍然提交