Php HTML表单工作不正常

Php HTML表单工作不正常,php,html,forms,sendmail,Php,Html,Forms,Sendmail,我构建了一个HTML表单,每当我提交它时,我都会被要求打开Gmail或Outlook。当我这样做时,会打开一封带有正确电子邮件地址的新电子邮件。问题是我希望它不打开任何东西就发送。我只想对表单使用HTML,不使用PHP/MySQL <form method="post" action="mailto:contact@walkerloden.com" enctype="text/plain"> <p>Name: <input t

我构建了一个HTML表单,每当我提交它时,我都会被要求打开Gmail或Outlook。当我这样做时,会打开一封带有正确电子邮件地址的新电子邮件。问题是我希望它不打开任何东西就发送。我只想对表单使用HTML,不使用PHP/MySQL

        <form method="post" action="mailto:contact@walkerloden.com" enctype="text/plain">
            <p>Name: <input type="text" name="Name" size="20"></p>
            <p>Email: <input type="text" name="Email" size="20"></p>
            <p><input type="submit" value="Submit" name="Submit"></p>
        </form>

姓名:

电邮:


您不能在示例HTML上执行此操作。您必须需要PHP或类似的东西来发送邮件。HTML不能以这种方式工作

Action mailto仅打开默认邮件应用程序


谷歌是你的朋友,先搜索再提问。web上有很多这样的例子。

在示例HTML上不能这样做。您必须需要PHP或类似的东西来发送邮件。HTML不能以这种方式工作

Action mailto仅打开默认邮件应用程序


谷歌是你的朋友,先搜索再提问。web上有很多这样的例子。

实际上不支持
mailto
的表单操作-如果您希望表单元素出现在带有所需地址的电子邮件中,那么表单就不是这样工作的


您需要有一些服务器端代码,您可以将表单发布到服务器端,这样才能进行实际的电子邮件发送。

实际上不支持
mailto
的表单操作-如果您希望表单元素出现在带有所需地址的电子邮件中,那么表单就不应该这样工作


您需要有一些服务器端代码,您可以将表单发布到服务器端,这样才能进行实际的电子邮件发送。

您不应该将表单操作设置为mailto

相反,您应该将其直接发送到您编写的脚本,在该脚本中,您可以接受POST变量,然后发送电子邮件。有一个名为
mail()
的本机PHP函数可以实现这一点。您的代码应该如下所示:

HTML

<form method="post" action="scripts/mailtome.php" enctype="text/plain">
    <p>Name: <input type="text" name="Name" size="20"></p>
    <p>Email: <input type="text" name="Email" size="20"></p>
    <p><input type="submit" value="Submit" name="Submit"></p>
</form>

姓名:

电邮:

PHP-mailtome.PHP

<?php
    $name = stripslashes(trim($_POST['Name']));
    $email = stripslashes(trim($_POST['Email']));
    $to = 'email@address.com'; 
    $subject = 'CONTACT FORM';

    $body = "From: $name\n E-Mail: $email";

    if(mail($to, $subject, $body, $name.' - '.$email))
        echo("It worked");
    else
        echo("Something went wrong");
?>

您不应该将表单操作设置为mailto

相反,您应该将其直接发送到您编写的脚本,在该脚本中,您可以接受POST变量,然后发送电子邮件。有一个名为
mail()
的本机PHP函数可以实现这一点。您的代码应该如下所示:

HTML

<form method="post" action="scripts/mailtome.php" enctype="text/plain">
    <p>Name: <input type="text" name="Name" size="20"></p>
    <p>Email: <input type="text" name="Email" size="20"></p>
    <p><input type="submit" value="Submit" name="Submit"></p>
</form>

姓名:

电邮:

PHP-mailtome.PHP

<?php
    $name = stripslashes(trim($_POST['Name']));
    $email = stripslashes(trim($_POST['Email']));
    $to = 'email@address.com'; 
    $subject = 'CONTACT FORM';

    $body = "From: $name\n E-Mail: $email";

    if(mail($to, $subject, $body, $name.' - '.$email))
        echo("It worked");
    else
        echo("Something went wrong");
?>

看起来您正在尝试制作一个注册表单,用户可以在表单中输入姓名和电子邮件,然后按submit将信息发送到电子邮件contact@walkerloden.com. 如果这是正确的,那么您有几个选项:

  • 使用mailto链接,这就是你在这里所做的。通常这些只是超链接,而不是表单。此技术将提示用户选择一个电子邮件客户端来实际发送电子邮件。这就是当你被要求打开gmail或outlook时发生的事情。好处是它不需要服务器。缺点是用户需要在电子邮件客户端实际完成发送电子邮件的过程
  • 制作一个能够发送电子邮件的服务器端脚本。您可以用PHP或任何您想要的语言来实现这一点。然后制作一个表单提交给这个服务器端脚本。在这个选项中,用户只需按submit,但您必须设置服务器端脚本,您提到您不想这样做

  • 如果您碰巧在WordPress或其他博客软件这样的网站上运行此注册表单,他们通常有内置的方法来制作注册表单,以避免麻烦。

    看起来您正在尝试制作一个注册表单,用户可以在其中输入姓名和电子邮件,然后按submit将该信息通过电子邮件发送至contact@walkerloden.com. 如果这是正确的,那么您有几个选项:

  • 使用mailto链接,这就是你在这里所做的。通常这些只是超链接,而不是表单。此技术将提示用户选择一个电子邮件客户端来实际发送电子邮件。这就是当你被要求打开gmail或outlook时发生的事情。好处是它不需要服务器。缺点是用户需要在电子邮件客户端实际完成发送电子邮件的过程
  • 制作一个能够发送电子邮件的服务器端脚本。您可以用PHP或任何您想要的语言来实现这一点。然后制作一个表单提交给这个服务器端脚本。在这个选项中,用户只需按submit,但您必须设置服务器端脚本,您提到您不想这样做

  • 如果您碰巧在WordPress或其他博客软件这样的网站上运行此注册表单,他们通常有内置的方法来制作注册表单,以避免麻烦。

    谢谢您的回答。我刚试过这个,它给我发的邮件是正确的,但它只给我发了“发件人”和“电子邮件:”两个字。它没有通过电子邮件发送我在表单中实际输入的文本。请尝试删除enctype,看看是否有任何作用。如果没有,请尝试将
    $\u POST
    更改为
    $\u REQUEST
    $\u GET
    。可能什么都做不了,但值得一试。删除了enctype,它就可以工作了。谢谢谢谢你的回答。我刚试过这个,它给我发的邮件是正确的,但它只给我发了“发件人”和“电子邮件:”两个字。它没有通过电子邮件发送我在表单中实际输入的文本。请尝试删除enctype,看看是否有任何作用。如果没有,请尝试将
    $\u POST
    更改为
    $\u REQUEST
    $\u GET
    。可能什么都做不了,但值得一试。删除了enctype,它就可以工作了。谢谢