0

我构建了一个 HTML 表单,每当我提交它时,我都会被要求打开 G Mail 或 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>
4

4 回答 4

2

真正不支持表单操作mailto- 如果您希望表单元素出现在具有所需地址的电子邮件中,这不是表单应该如何工作的方式。

您需要有一些服务器端代码,您可以将表单发布到该代码上,然后执行实际的电子邮件发送。

于 2012-08-07T19:42:32.673 回答
2

您不应该将表单操作设置为 mailto 任何东西。

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

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");
?>
于 2012-08-07T19:44:49.393 回答
0

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

操作邮件只打开您的默认邮件应用程序。

谷歌是你的朋友,先搜索再问。网络上有很多关于这方面的例子。

于 2012-08-07T19:42:29.033 回答
0

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

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

如果您碰巧在 WordPress 或其他博客软件之类的网站上运行此注册表单,它们通常会内置一些方法来制作注册表单,从而为您省去麻烦。

于 2012-08-07T19:52:31.607 回答