HTML表单:让用户通过已发送的电子邮件向您发送电子邮件

时间:2013-12-31 07:49:04

标签: javascript php html forms email

所以,我想制作一个帮助表单,允许用户通过我已发送的电子邮件向我发送电子邮件,而不是使用他们的电子邮件。所以我的意思是一个表单,他们可以只输入文本,然后单击提交按钮,它发送给我,而无需用户做任何其他事情。

到目前为止我尝试的是:

<form action="MAILTO:xeroelixirmain@gmail.com" method="post" enctype="text/plain">
    Username:<br>
    <input type="text" name="name"><br>
    Help comment:<br>
    <input type="text" name="mail" value="50"><br>
    <input type="submit" value="Send">
</form>

但是在Safari上(不确定其他浏览器)这会打开一个新窗口,提示用户填写电子邮件。我怎么能这样做才能将它发送到我的电子邮件而不必自己写电子邮件,而只需单击发送并为用户预设我的电子邮件(xeroelixiry@gmail.com),这样就不会弹出任何窗口或任何东西。

4 个答案:

答案 0 :(得分:1)

为此,您需要将您的网站上传到支持php的主机上。仅使用客户端脚本无法完成。

Html代码:

<form id="form" method="post" action="sendMail.php">
         <fieldset>
             <label>name</label>
             <input type="text" name="name"/>
             <label>surname</label>
             <input type="text" name="surname"/>
             <label>e-mail</label>
             <input type="text" name="mail"/>
         </fieldset>
         <fieldset>
             <label>message</label>
             <textarea name="msg" cols="85" rows="8"></textarea>
         </fieldset>
         <fieldset>
             <input type="submit" value="send"/>
         </fieldset>
</form>

PHP代码:

<?php

error_reporting(E_ERROR | E_WARNING | E_PARSE);

$contact = array('name' => $_POST['name'],
    'surname' => $_POST['surname'],
    'mail' => $_POST['mail'],
    'msg' => $_POST['msg']
);

if ($contact['name'] != "" && $contact['surname'] != "" && $contact['mail'] != "" && $contact['msg'] != "") {

    $name = $contact['name'];
    $surname = $contact['surname'];
    $mail = $contact['mail'];
    $msg = $contact['msg'];

    // message can be built as you want, you can use html and inline css in it.
    $message = "name: ".$name."<br/>"."surname: ".$surname."<br/>".$msg;

    $to = "your_mail@gmail.com";
    $subject = "subject";

    $headers = "From: " . $mail . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    mail($to, $subject, $message, $headers);
}
?>

答案 1 :(得分:0)

您可能需要一些后端支持。简单的javascript + html无法做到这一点,因为它没有连接到smtp服务器并从中发送电子邮件。 当你选择php时,我想这是你的后端。因此,您可以使用PHP邮件组件并将表单提交到一个后端php页面,并将表单中的数据转换为邮件功能。你可以从php doc获得更多 - &gt; http://www.php.net/manual/en/function.mail.php

答案 2 :(得分:0)

为了方便您,我提供了PHP邮件功能的示例。但是,您将要考虑添加一些内容,例如...主题的输入,这总是很方便。此外,让你的输入区域成为一个文本区域,我发现写一些我完全能够看到的内容更容易,而只能看到我目前所写内容的有限视图。

    $messageBody = $_POST['mail'];
    $to = 'youremail@whateverworks.com';
    mail($to, $_POST['subject'], $messageBody);

我认为这些主要是你真正需要关注的事情。考虑到你能够容纳第四个参数,通常是CC,BCC或FROM部分(在手册中,它们称之为“标题”部分),除非你打算计划,否则这对你也有帮助有人在信息的最后写下他们的名字(可能不是很好的礼仪)。

现在你的表格..嗯..你可以把它结构化annnyyywwaaayyy你想要..事实上..有多种方法可以给猫皮肤......并创建一个表单..这里是快速demo的有可能让你的形式更好一点。如果你想更多地推理为什么我使用了无序列表与表格,那么这里有一个SO Question可以给你一些优点等等的优缺点。我的JsFiddle还可以让您了解如何使表单的显示看起来......干净。

另外,看看你想如何验证你的表单...你想通过PHP做,它需要用户点击提交按钮,然后才能查看任何错误(也许要检查用户名或实际消息,从而避免垃圾邮件或不需要的电子邮件)或者您可能希望尝试将一些浏览器端脚本与JavaScript结合使用,以便在不触及提交按钮的情况下自动检查这些内容。

关于数据库,我建议验证并确保您正在阻止SQL注入(我不会是唯一提出这一点的人),如果您计划上传此消息并保留数据库,这将有助于保护您的数据库一段时间。

我们需要考虑创建一个表单,无论是简单的HTML代码,还是整个MySQL或您可能正在使用的任何数据库代码。

最后,请查看手册。事实上,我现在从手册中学到更多东西,然后我从查看其他人的代码中学到了更多东西,因为它提供了真实,可行的实例供您选择。请访问此site,让您的生活更轻松。

答案 3 :(得分:0)

这将允许您从HTML输入文本框中获取值,然后传递这些值以发送Email.Hope它将有所帮助..

function BuildEmailBody() 
{
var  retBody;

retBody = document.getElementById("txtMessage").value;

return retBody;                                         
}

 function ProcessSubmition() {

    var stringEmailBody = BuildEmailBody();                 //the value of 'txtmessage' will asign to stringEmailbody

    var stringTo = document.getElementById("txtEmail").value;   //Email from textbox of id 'txtEmail'

     var stringSubject = document.getElementById("txtSubject").value;  //subject from textbox of id 'txtSubject'

    window.location.href = "mailto:" + stringTo + "?subject=" + stringSubject + "&body=" + stringEmailBody;

}