HTML表单无法正常工作

时间:2012-08-07 19:39:01

标签: php html forms sendmail

我构建了一个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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

您不应将表单操作设置为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");
?>

答案 2 :(得分:0)

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

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

Google是您的朋友,请先询问。网络就是充分的例子。

答案 3 :(得分:0)

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

  1. 使用mailto链接,这是你在这里做的一种。通常这些只是超链接而不是表单。此技术将提示用户选择实际发送电子邮件的电子邮件客户端。这是当你被要求打开Gmail或Outlook时发生的事情。好处是它不需要服务器。缺点是用户需要在电子邮件客户端中实际完成发送电子邮件的过程。
  2. 制作能够发送电子邮件的服务器端脚本。你可以用PHP或任何你想要的语言来做到这一点。然后创建一个提交到此服务器端脚本的表单。在此选项中,用户只需按提交,但您必须设置服务器端脚本,您提到您不想这样做。
  3. 如果您恰好在WordPress或其他博客软件等网站中运行此注册表单,他们通常会使用内置方式制作注册表单,以免给您带来麻烦。