我有一个HTML表单供人们填写,我想要它,所以当他们点击提交按钮时,它只会发送电子邮件,而不是提起他们的电子邮件并要求他们自己发送消息.
我用的时候:
<form action="MAILTO:emailaddress@email.com"... >
Run Code Online (Sandbox Code Playgroud)
所有这一切都打开了一个新窗口并填充了电子邮件的正文,但我希望它只是发送一封电子邮件.
有没有办法格式化电子邮件的输出?而不仅仅是字段名称和输入值的列表.
谢谢.
nel*_*nic 50
昨天我们遇到了类似的挑战,我们使用Google Apps脚本解决了这个问题!
该解决方案需要5分钟才能实现,我已逐步说明了这些说明:https://github.com/nelsonic/ html-form-send-email-via-google-script-without-server
将示例脚本部署为Google电子表格APP脚本: google-script-just-email.js

记得
TO_ADDRESS将脚本中的内容设置为您希望发送电子邮件的位置.
并复制 APP URL,以便在发布脚本时可以在下一步中使用它.
action为应用程序URL使用示例html文件:
index.html
创建一个基本表单.

请记住将您的APP网址粘贴到
actionHTML表单中的表单中.
在浏览器中打开HTML表单,输入一些数据并提交!

提交表格.您应该看到确认已发送:

打开您设置的电子邮件地址的收件箱(上图)

一切有关这是定制的,你可以很容易 的风格/主题 的 形式,用你喜欢的 CSS库 和 存储所提交的数据在谷歌电子表格 进行快速分析.
的完整说明,可在 GitHub上:
https://github.com/nelsonic/ 的HTML表单发送的电子邮件-通过-谷歌脚本-无需服务器
min*_*gos 23
你是有道理的,但你似乎误解了发送电子邮件的概念.
HTML在客户端解析,而电子邮件需要从服务器发送.你不能用纯HTML做.我建议编写一个PHP脚本来处理发送给你的电子邮件.
基本上,您的表单的操作将需要指向该PHP脚本,而不是MAILTO.在脚本中,检索表单传递的值(在PHP中,它们可通过$_POST超全局获得)并使用电子邮件发送功能(mail()).
当然,这也可以在其他服务器端语言中完成.我正在提供PHP解决方案,因为PHP是我使用的语言.
一个简单的示例代码:
form.html:
<form method="post" action="email.php">
<input type="text" name="subject" /><br />
<textarea name="message"></textarea>
</form>
Run Code Online (Sandbox Code Playgroud)
email.php:
<?php
mail('youremail@example.com', $_POST['subject'], $_POST['message']);
?>
<p>Your email has been sent.</p>
Run Code Online (Sandbox Code Playgroud)
当然,脚本应该包含一些安全措施,例如检查$ _POST valies是否完全可用,以及其他电子邮件标题(例如发件人的电子邮件),也许是一种处理字符编码的方法 - 但这也是复杂的快速例子;).
我现在实际上使用 ASP C# 发送电子邮件,内容如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form.Count > 0)
{
string formEmail = "";
string fromEmail = "from@email.com";
string defaultEmail = "default@email.com";
string sendTo1 = "";
int x = 0;
for (int i = 0; i < Request.Form.Keys.Count; i++)
{
formEmail += "<strong>" + Request.Form.Keys[i] + "</strong>";
formEmail += ": " + Request.Form[i] + "<br/>";
if (Request.Form.Keys[i] == "Email")
{
if (Request.Form[i].ToString() != string.Empty)
{
fromEmail = Request.Form[i].ToString();
}
formEmail += "<br/>";
}
}
System.Net.Mail.MailMessage myMsg = new System.Net.Mail.MailMessage();
SmtpClient smtpClient = new SmtpClient();
try
{
myMsg.To.Add(new System.Net.Mail.MailAddress(defaultEmail));
myMsg.IsBodyHtml = true;
myMsg.Body = formEmail;
myMsg.From = new System.Net.Mail.MailAddress(fromEmail);
myMsg.Subject = "Sent using Gmail Smtp";
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = new System.Net.NetworkCredential("testing@gmail.com", "pward");
smtpClient.Send(defaultEmail, sendTo1, "Sent using gmail smpt", formEmail);
}
catch (Exception ee)
{
debug.Text += ee.Message;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是使用 gmail 作为 smtp 邮件发件人的示例。这里的一些内容是不需要的,但这就是我使用它的方式,因为我确信以同样的方式有更有效的方法。