我可以修改这个简单的HTML表单以发送电子邮件吗?

时间:2013-10-09 15:14:39

标签: php html web xhtml smtp

如果您进入此页面,您可以轻松取消我想要做的事情:http://lnx.erusma.org/en/

在页面底部,我有一个名为取消联系的HTML模块,该模块由一些被认为代表电子邮件发件人模块的字段组成。

问题在于,目前这只是一个HTML模块,不会发送任何电子邮件。

其代码实际上是:

<form>
    <input id="name" title="name" type="text" placeholder="Your name" size="23" style="width:94%" />
    <input id="email" title="email" type="text" placeholder="Your email" size="23" style="width:94%" /> <br />
    <input id="subject" title="subject" type="text" placeholder="Subject" size="51" style="width:94%" /><br />
    <textarea id="message" cols="33" style="width:94%" placeholder="Message"></textarea>
    <a style="display:inline-block;background:#fff;border: 1px solid #E7E7E7;border-bottom: 2px solid #93B62A;padding:8px 12px;" href="#" style="float: left;">Submit</a>
</form>

我是否可以修改此代码以发送包含插入内容的电子邮件(插入表单字段中的内容)?

我该怎么办?

TNX

安德烈

2 个答案:

答案 0 :(得分:2)

您需要创建一个php / asp或任何服务器端进程来收集值并发送电子邮件。

表格应该像这样修改

<form method="post" action="myformsend.php">
<input id="name" title="name" type="text" placeholder="Your name" size="23"     style="width:94%" />
<input id="email" title="email" type="text" placeholder="Your email" size="23" style="width:94%" /> <br />
<input id="subject" title="subject" type="text" placeholder="Subject" size="51" style="width:94%" /><br />
<textarea id="message" cols="33" style="width:94%" placeholder="Message"></textarea>
<a style="display:inline-block;background:#fff;border: 1px solid #E7E7E7;border-bottom: 2px solid #93B62A;padding:8px 12px;" href="#" style="float: left;">Submit</a>
</form>

你可以通过传统方式或通过ajax来实现。

对于myformsend.php,你可以有一些简单的东西:

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

您可以在此处查看更多相关信息 - &gt; http://www.w3schools.com/php/php_mail.asp

希望这能帮到你

答案 1 :(得分:0)

您有两种选择:

  • 依靠客户端发送电子邮件
  • 从服务器端代码发送电子邮件

第一个选项很简单,你的表单操作就是:

<form action="mailto:someemail@server.com">

当然,我认为你的输入也需要匹配名称&#34; subject&#34;和&#34;身体&#34;,像这样:

<input name="subject" type="text" />
<textarea name="body"></textarea>

请注意,这些是name属性,而不是id属性。表单使用名称。因此,您应该将name属性添加到表单元素中。

这实际上并没有发送电子邮件&#34;虽然。这将指示Web浏览器尝试打开用户的默认电子邮件客户端,并使用这些值作为输入撰写新消息。这可能不是你想要的。特别是如果用户没有电子邮件客户端,那么在这种情况下什么都不会发生。

但是,因为您使用&#34; PHP&#34;标记了问题。那么我假设你也有服务器端代码作为选项。处理来自此表单的POST请求时,您可以使用the PHP mail() function发送电子邮件。该页面上的第一个示例非常简单:

mail('caffeinated@example.com', 'My Subject', $message);

您只需要为其提供您要使用的字符串。对于表单POST,您的值将位于:

$_POST['name']
$_POST['email']
$_POST['subject']
$_POST['message']

(同样,这假设您已经为表单元素添加了name个属性。我强烈建议您这样做。)

使用这些字符串值,您可以建立对mail()的调用:

mail($_POST['email'], $_POST['subject'], $_POST['message']);

你可能想做更多的事情,而且还有更多你能做的事情。查看链接的PHP文档中的其他示例。您也很可能希望在发送此电子邮件之前进行一些错误检查,并且肯定会进行一些用户授权。在您的网页上建立一个开放的电子邮件网关对垃圾邮件发送者来说是有价值的,因此您可能会将您的服务器列入黑名单。