【问题标题】:Properly populate an email using only HTML仅使用 HTML 正确填充电子邮件
【发布时间】:2015-12-08 03:22:41
【问题描述】:

对于一个作业,我需要在我的网页中添加一个form,并让表单填充一封电子邮件供用户发送。

我在搜索后写了这个:

<form enctype="text/plain" method="post" action="mailto:[My Email Here]">
    <input type="text" name="subject" value="Subject" />
    <input type="text" name="body" value="Body" />

    <input type="submit" name="submit" value="Submit" />
</form>

正如我所料,它打开了我的邮件客户端并为我填充了一封电子邮件。问题是,它的填充方式非常丑陋且不直观。主题行留空,正文填入:

subject=Subject

body=Body

submit=Submit

(4 lines of white-space)

理想情况下,我希望“主题”最终出现在主题中,“正文”字段是唯一出现在正文中的内容,并且“提交”根本不会出现在用户面前.

这可能吗?

此时我只被允许使用 HTML。 (仅 HTML。不允许内联脚本)。

【问题讨论】:

  • 你可以使用内联javascript吗?
  • @gfullam 不,我现在完全受限于 HTML。
  • 如果您使用 PHP Mail 发送电子邮件,您必须在服务器端脚本中定义发送电子邮件的布局。
  • @DannyGibas 我完全仅限于 HTML。
  • 是的,我明白了。我只是在解释,您无法单独使用 HTML 来定义已发送电子邮件的显示方式。您需要能够定义 HTML 布局,填充字段,然后发送它。这必须在服务器上完成。

标签: html forms


【解决方案1】:

GET 而不是 POST

将表单的方法从POST 更改为GET。使用GET 方法会将来自input 字段的键/值对作为查询字符串附加到action 属性中的mailto: 链接上。这将创建一个电子邮件客户端了解如何解析的 URL:

mailto:{TARGET EMAIL ADDRESS}?subject=Subject&amp;body=Body

<form enctype="text/plain" method="GET" action="mailto:{TARGET EMAIL ADRESS}">
    <input type="text" name="subject" value="Subject"/>
    <input type="text" name="body" value="Body"/>
    <input type="submit" name="submit" value="Submit">
</form>

【讨论】:

  • 太棒了,这就是我要找的。现在唯一的问题是空格被+s 替换了。可以通过改变编码类型来解决吗?
  • Nvm,似乎无法通过更改编码来实现。 +s 是强制性的,我说得对吗?无论如何,这回答了我的问题,所以谢谢。
  • 而且代码 sn-p 由于某种原因不起作用。 SO 可能会阻止某些事情。
  • 是的,enctype 只影响POST。使用GET 时会被忽略。所以你有点卡住了。这就是 JavaScript 真正发挥作用的地方。如果您甚至可以使用基本的内联 JS,您可以正确编码这些值,以便使用 %20 而不是 +,这将在您的电子邮件客户端中转换回空格。
  • 谢谢。我想暂时我会坚持使用我的原始代码,因为“+”使得它很难阅读,但是当我可以使用 JS 时,我可能会切换。感谢您提供信息丰富的答案。
【解决方案2】:

mailto 表单将始终将所有字段添加到邮件正文。 javascript 可以为您解决问题。你可以使用Javascript ..吗?

也许这对你有用

<html>

<form onsubmit="window.location='mailto:me@domain.com?subject='+myform.subject.value + '&body='+myform.comments.value" name="myform"  method="post">

<input name="subject"  value="Commencement Form" />
<input name="comments"  value="my body" />
<input type="submit" value="submit">
</from>
</html>

【讨论】:

  • 据说我完全受限于 HTML。
猜你喜欢
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多