在HTML上发送电子邮件

在HTML上发送电子邮件,html,html-email,forms,Html,Html Email,Forms,我完全是从头开始创建一个网站,当我想在客户按下提交按钮时收到电子邮件时,我面临一个问题。这是我在表单标签上的代码 我做错了什么 <form id="contactform" method="post" action="MAILTO:myemail@hotmail.com? subject=subject&message=message"> <p class="contact1"&g

我完全是从头开始创建一个网站,当我想在客户按下提交按钮时收到电子邮件时,我面临一个问题。这是我在表单标签上的代码

我做错了什么

<form id="contactform" method="post" action="MAILTO:myemail@hotmail.com?    subject=subject&message=message">
  <p class="contact1"><label for="name">Name</label></p>
  <input id="name" name="name" placeholder="First and last name" required="" tabindex="1" type="text">

  <p class="contact"><label for="email">Email</label></p>
  <input id="email" name="email" placeholder="example@hotmail.com" required="" tabindex="2" type="text">

  <p class="contact"><label for="Subject">Subject</label></p>
  <input id="subject" name="subject" placeholder="Subject" required="" tabindex="2" type="text">

  <p class="contact"><label for="comment">Your Message</label></p>
  <textarea name="comment" id="comment" tabindex="4"></textarea> <br>
  <input name="submit" id="submit" tabindex="5" value="Send Message" type="submit">
</form>

姓名

电子邮件

主题

您的信息



我不得不说:我不是百分之百肯定。 但不可能通过HTML发送电子邮件。
你需要某种服务器。也许可以试试谷歌AppEngine,它是免费的(直到有一定的限制),易于学习,并且有一个额外的电子邮件API。

它可能并不总是有效。看

就我个人而言,我从未使用过这样的解决方案。我总是使用PHP发送电子邮件

当我使用您的解决方案时,我的电子邮件客户端会正确打开,但邮件内容看起来不太好

但当我使用:

<form action="mailto:admin@example.com" enctype="text/plain" method="post">
<p>Name: <input name="Name" type="text" id="Name" size="40"></p>
<p>E-mail address: <input name="E-mail" type="text" id="E-mail" size="40"></p>
<p>Comment:</p>
<p><textarea name="Comment" cols="55" rows="5"
id="Comment"></textarea></p>
<p><input type="submit" name="Submit" value="Submit"></p>
</form>

姓名:

电子邮件地址:

评论:


它工作得非常好

为了实现这一点,您需要一些级别的脚本(我认为服务器端…不确定客户端是否可以这样做…)将您的值保存在占位符变量中,然后用重新绘制屏幕,然后将它们注入

如果要使用表单构建这些链接,则必须将表单的输入捕获为变量,然后使用定义的变量构建链接,然后将其回显到屏幕上


你完全错了

当用户按下提交按钮时。表单将被重定向到新页面,带有
action
属性中提供的链接

请记住,大多数用户的系统上都安装了一些默认的电子邮件客户端。我将Google Mail设置为默认设置,有些人可能有Outlook,我们中的一些人会喜欢使用Thunderbird(由Mozilla提供)

这些程序将有自己的算法发送电子邮件。因此,您正在使用的代码永远不会成功。如果有,那么它会发送电子邮件给你

发件人:客户_电子邮件
主题:主题
正文:

body标记中没有数据,因为您根本不包括该方法

以上是您收到的电子邮件。此外,如果这样做,表单数据将丢失,软件将尝试向用户请求数据作为新周期

我认为你需要做如下的事情

<form id="contactform" method="post" action="send_email.html"> 
    <p class="contact1"><label for="name">Name</label></p> 
    <input id="name" name="name" placeholder="First and last name" required="" tabindex="1" type="text">     

    <p class="contact"><label for="email">Email</label></p> 
    <input id="email" name="email" placeholder="example@hotmail.com" required="" tabindex="2" type="text">       

    <p class="contact"><label for="Subject">Subject</label></p> 
    <input id="subject" name="subject" placeholder="Subject" required="" tabindex="2" type="text">   

    <p class="contact"><label for="comment">Your Message</label></p> 
    <textarea name="comment" id="comment" tabindex="4"></textarea> <br>
    <input name="submit" id="submit" tabindex="5" value="Send Message" type="submit">
</form>

姓名

电子邮件

受试者

您的信息

然后,在服务器端处理电子邮件发送请求,并使用您正在使用的服务器端语言自行发送

这样,您还将收到电子邮件以及用户编写并试图发送给您的内容。

解决方案:

用HTML、JavaScript、CSS或任何客户端语言发送电子邮件是不可能的。您必须转到服务器端。电子邮件最常见的选择是PHP。因此,您的开始表单标签应如下所示:

<form method="POST" action="mailer.php">

请记住,这是一个非常基本的电子邮件脚本,不会防止脚本注入和XSS。

mailto:
用于链接,而不是表单。我如何解决这个问题?我可以在我的提交按钮的最后一个输入标记中包含该标记吗?因为我已经尝试了好几种方法,但都没能找到答案。你不能。您必须使用服务器端协议,比如PHP.PHP。我将开始这样做。谢谢你的帮助,我在一开始就告诉过你,它并不总是有效的,我使用PHP来完成这样的任务。这种类型的“答案”作为注释会更好。我可以看出你是新来的——你可能想看看常见问题以更好地了解期望值。当我建议使用PHP并告诉用户解决方案并不总是有效时,我的答案有什么错误?最初的DVs很可能是因为一个简单的链接到另一个站点的答案很差。您现在已经对其进行了改进,但也许下次从一开始就对其进行完全格式化以避免DVsYeah,但答案是正确的-PHP发送任何数据都比使用此方法可靠得多,因为它不会始终工作(链接中描述了这一点)。我添加了工作解决方案,但似乎php解决方案再次被@user3604922选中。。。无论是对是错,一个简单的链接到另一个网站在SO社区中通常是不受欢迎的。这里的阐述和构建答案的努力通常是最佳实践,而不是“哦,我使用jquery来解决这个问题,因为它很简单……”我感谢您帮助我Marcin。我选择使用php来解决我的问题,因为它太复杂了,如果不是不可能的话。再次感谢。除了最后两句话,我明白你在说什么。什么意思?在服务器端处理电子邮件发送请求,并使用您正在使用的服务器端语言自行发送?我网站使用的语言只有html5、css3、javascript和我复制的一些jquery。我还没有用过php。我可以只在联系人表单中使用php,不是吗?当你在联系人表单中使用php时,你也可以在发送电子邮件过程中使用它:)不是吗?我想你可以。只需几行,用户界面也会更好。:)要自行处理这些请求,并且不允许第三方使用这些信息发送电子邮件…:)
<form method="POST" action="mailer.php">
$name = $_POST["name"];
$message = $_POST["message"];
mail("your_email@site.com", "Subject", "Message from your site. \n Name: ".$name." \n Message: ".$message);