使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题

Posted

技术标签:

【中文标题】使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题【英文标题】:Using php to send form to my email..Having an issue with 405 Not Allowed when form is submitted 【发布时间】:2016-04-24 07:14:54 【问题描述】:

从我创建的表单中获取数据并通过 php 将其传递到我的电子邮件时遇到问题。这是http://kapena.github.io/pp_web/#contact-pp表格的链接

这是确切的问题.. 当我单击表单按钮上的提交时,我收到此错误消息说..

我目前在 gh-pages 上托管此构建

我对此进行了一些研究,并找到了错误 405 的补丁,但我不知道如何将此解决方案实施到我的项目中。我只是一个初学者,我需要一些指导。这是我找到的解决方案https://gist.github.com/baskaran-md/e46cc25ccfac83f153bb#file-nginx-conf

如何在我的网站中正确实施此解决方案? 这是我的 php 代码,因此您可以检查它以查看是否存在导致此问题的问题。

任何帮助将不胜感激。尝试在新的一年推出 b4 :)

<?php
if($_POST["submit"]) 
$recipient = "brentw.white@gmail.com"; //my email
$subject = 'Email message from Point Plumbing';
$name = $_POST ["yourName"];
$email = $_POST["yourEmail"];
$phone = $_POST["yourPhone"];
$location = $_POST["yourLocate"];
$message = $_POST["message-me"];

$mailBody="Name: $name\nEmail: $email\n\n$message";
$mail($recipient, $subject, $mailBody, "From: $name <$email>");
$thankYou="<p>Thank you! We will be in contact with you shortly.</p>";

?>

我的 html ..我感觉它与 method='post' 有关可能是问题所在?

<form action="submit_form.php" method="post" id="spaceing" data-abide>
        <div class="form-bg">
            <div class="row">
                <div id="name" class="large-6 medium-6 small-12 columns">
                    <label> <h5>Name</h5>
                        <input type="text" name="yourName" placeholder="What is you're name?"></input>
                    </label>
                </div>

                <div id="email" class="large-6 medium-6 small-12 columns">
                    <label><h5>Email</h5>
                        <input type="email" name="yourEmail" placeholder="Please enter in you're email."required></input>
                    </label>
                    <small class="error">An email Address is required.</small>
                </div>
            </div>

                <div class="row">
                    <div id="phone"class="large-6 medium-6 small-12 columns">
                        <label><h5>Phone</h5>
                            <input type="text" name="yourPhone" placeholder="Please enter you're phone number."></input>
                        </label>
                    </div>

                    <div id="location" class="large-6 medium-6 small-12 columns">
                        <label><h5>Location</h5>
                            <input type="text" name="yourLocate" placeholder="Where on Oahu are you currently living?"></input>
                        </label>
                    </div>
                </div>

                <div class="row">
                    <div id="message-area" class="large-12 medium-12 small-12 columns">
                        <label><h5>Message</h5>
                            <textarea id="message" name="yourMessage" placeholder="Please tell us about you're plumbing issues."></textarea>
                        </label>
                    </div>
                </div>

            <div class="row">
                <div id="submit" class="large-3 medium-3 small-3 columns">
                    <button type="submit-me">Submit</button>
                </div>
            </div>
        </div>
    </form>

【问题讨论】:

$mail( 是不是打错字了?不应该有 $ 我进行了调整,但提交表单时仍然抛出错误..没有收到任何电子邮件 【参考方案1】:

我之所以这样做是因为你在 github 服务器上开发,而他不允许发布 POST 更改代码 HTML:

<form action="submit_form.php" method="get" id="spaceing" data-abide>

PHP 将 $_POST 更改为 $_GET 但长度存在问题,因为所有数据都在 URL 中发送。

如果你想让公共页面正常服务器返回到 POST 方法

【讨论】:

【参考方案2】:

我修改了你的代码,发现很多错误。正确的代码如下:- 在您的代码中发现以下错误 1. 使用 if(isset($_POST["submit"])) 而不是 if($_POST["submit"]) 2. 你为 textarea 使用了错误的变量名。你应该使用 $message = $_POST["yourMessage"];而不是 $message = $_POST["message-me"]; 4. 另一个错误是您的表单操作位于 submit_form.php 页面,但我发现您的邮件代码位于页面顶部。如果你想提交到另一个页面,那么使用 php 代码来 submit_form.php 页面。 5.您的代码的主要和重要错误我发现您在发送邮件的地方使用您的 gmail 电子邮件。但是如果您使用其他域电子邮件,您应该使用您的域电子邮件,例如 brentw.white@kapena.github.io 这些邮件是计数的可疑并且您的邮件进入垃圾邮件 我想这对你很有帮助 我在这里使用了您的链接:- http://smartzonewebservices.com/mtg/del.php

<?php
if(isset($_POST["submit"])) 
$recipient = "brentw.white@gmail.com"; //my email
echo $subject = 'Email message from Point Plumbing';
echo $name = $_POST ["yourName"];
echo $email = $_POST["yourEmail"];
echo $phone = $_POST["yourPhone"];
echo $location = $_POST["yourLocate"];
echo  $message = $_POST["yourMessage"];

 $mailBody="Name: $name\nEmail: $email\n\n$message"; 

 mail($recipient, $subject, $mailBody, "From: $name <$email>");

echo $thankYou="<p>Thank you! We will be in contact with you shortly.</p>";


?>
<form action="" method="post" id="spaceing" data-abide>
        <div class="form-bg">
            <div class="row">
                <div id="name" class="large-6 medium-6 small-12 columns">
                    <label> <h5>Name</h5>
                        <input type="text" name="yourName" placeholder="What is you're name?"></input>
                    </label>
                </div>

                <div id="email" class="large-6 medium-6 small-12 columns">
                    <label><h5>Email</h5>
                        <input type="email" name="yourEmail" placeholder="Please enter in you're email."required></input>
                    </label>
                    <small class="error">An email Address is required.</small>
                </div>
            </div>

                <div class="row">
                    <div id="phone"class="large-6 medium-6 small-12 columns">
                        <label><h5>Phone</h5>
                            <input type="text" name="yourPhone" placeholder="Please enter you're phone number."></input>
                        </label>
                    </div>

                    <div id="location" class="large-6 medium-6 small-12 columns">
                        <label><h5>Location</h5>
                            <input type="text" name="yourLocate" placeholder="Where on Oahu are you currently living?"></input>
                        </label>
                    </div>
                </div>

                <div class="row">
                    <div id="message-area" class="large-12 medium-12 small-12 columns">
                        <label><h5>Message</h5>
                            <textarea id="message" name="yourMessage" placeholder="Please tell us about you're plumbing issues."></textarea>
                        </label>
                    </div>
                </div>

            <div class="row">
                <div id="submit" class="large-3 medium-3 small-3 columns">
                    <button name="submit" type="submit">Submit</button>
                </div>
            </div>
        </div>
    </form>

【讨论】:

你能否详细说明第五点。在我看来,您谈论的是将表格发送到的电子邮件地址。 “brentw.white@kapena.github.io” 【参考方案3】:

看http://php.net/manual/en/function.mail.php

$mail($recipient, $subject, $mailBody, "From: $name <$email>");

$mail is not variable is function then

mail($recipient, $subject, $mailBody, "From: $name <$email>");

【讨论】:

感谢您对它的全新关注。我做了调整,但它仍然抛出错误 405。

以上是关于使用 php 将表单发送到我的电子邮件。提交表单时出现 405 Not Allowed 问题的主要内容,如果未能解决你的问题,请参考以下文章

单击获取列表值并使用值自动提交表单

织梦cmsf表单提交到邮箱 织梦表单发送到邮箱 织梦自定义表单发邮箱

PHP表单向多个收件人发送电子邮件

MS Word 2013 表单,使用宏创建另存为并提交按钮

PHP mail()表单发送到GMAIL垃圾邮件[重复]

验证失败时阻止表单提交(Angular Material)