不写一行代码,如何实现前端数据发送到邮箱?

开发 后端
要将点击按钮和发送邮件功能进行绑定,有没有什么简单的方法呢?本文就将介绍如何使用Google Apps Script来实现网站发送表单数据到邮箱。

经常在很多网站上都能看到类似的表单信息功能,用户只需要填写相关内容,点击提交按钮,就可以将表单内容发送到管理员邮箱。

恰好最近在折腾我的网站时,也想添加一个这样的功能,但是搜了一圈后,这样的功能要么是使用Wordpress构建的网站,后台有现成的功能,要么就是使用php或者C#作为后端实现的,而我的网站是基于原生H5写的,没有相关后端与数据库交互,该怎样实现呢?

稍加思考后,就会发现,本质上就是要将点击按钮和发送邮件功能进行绑定,那么有没有什么简单的方法呢?本文就将介绍如何使用Google Apps Script来实现网站发送表单数据到邮箱。

“后端”操作(Google Apps Script)

虽然本文介绍的方法比较简单,无需写一行代码,但是仍需要你进行一些“后端”的操作,来将前后按钮和发送邮件功能进行绑定。

1. 制作存储表格

首先我们需要登陆Google表格并创建一个用于存储邮件信息的电子表格,注意需要设置好你需要的字段:

当然可以直接打开下面的模版来创建一个副本:

https://docs.google.com/spreadsheets/d/1Bn4m6iA_Xch1zzhNvo_6CoQWqOAgwwkOWJKC-phHx2Q/copy

2. 创建脚本

现在,我们进入刚刚创建的表格来启动Apps脚本:

3. 修改目标邮箱

现在我们需要修改刚刚打开的js文件中的参数来指定发送邮箱:

注如果你不修改这行参数的话,只要别人进入你的网站,F12修改相关参数即可将邮件数据发送至他的邮箱!

当然,你也可以在不在这里指定发送邮箱,反之将这个关键词做为表单选项,来在填写时指定!

修改之后,保存即可。

4. 发布 Web 程序

现在,我们需要发布并部署脚本:

需要注意的是,要将权限设置为所有人:

5. 授权脚本发送邮件

现在,我们已经创建了一个能够发送邮件的脚本,下一步需要对它进行授权:

点击后按照提示进行授权:

最后,你会得到一串网站,将它复制保存:

到这里,我们“后端”操作就完成了!虽然步骤有些复杂,但是比 php 或者 C# 等代码实现还是要简单很多。

前端操作

6. 修改 form 标签参数

现在,可以打开我们表单所在的html文件,按照如下提示进行修改:

  • 每个表单元素的name属性都必须与Google表格中的列名相同
  • 表格class必须是gform,即<form class="gform">
  • action修改为刚刚复制的链接

7. 发送表单数据

现在,任何人都可以填写对应表格内容,并点击发送:

你的 Google 表格中就会增加一条数据:

并且你的邮箱中也会收到一封新增内容的邮件:

至此,我们仅通过 Google 表格与简单的脚本修改就完成的 html 表单数据发送至邮箱!

8. (可选)使用 Ajax

虽然我们的需求已经实现,但是在刚刚点完发送之后,会跳转到一个新的页面:

为了页面不修改,我们需要使用AJAX提交表单,首先需要从下面的链接中下载对应的js文件到项目目录:

https://github.com/dwyl/learn-to-send-email-via-google-script-html-no-server/blob/master/form-submission-handler.js

并将下方代码添加到网页文件中:

<script data-cfasync="false" type="text/javascript" src="form-submission-handler.js"></script>

刷新页面,现在我们可以直接在当前页面提交表单!

9. (可选)添加感谢

如果你想在用户提交表单后发送一段感谢语,可以将下面的内容插入在form标签结束之前:

<div style="display:none" class="thankyou_message">
<!-- 修改下方内容 -->
<h2><em>Thanks</em> for contacting us! We will get back to you soon!
</h2>
</div>

当然你也可以使用CSS、JS来让你的表单更加酷炫,但这不是本文要讨论的主要内容。

好了,至此,你应该学会如何利用 Google 表格来快速的实现前端数据发送到指定邮箱,如果你对本文的内容感兴趣,不妨亲自动手尝试一下!

责任编辑:赵宁宁 来源: 早起Python
相关推荐

2023-12-29 08:46:48

边车容器邮箱pod

2022-07-05 08:26:10

Python报表自动化邮箱

2022-04-09 09:11:33

Python

2023-09-06 07:51:19

KubernetesOperator

2023-09-12 10:10:57

开发者工具开源

2021-06-07 16:01:15

代码开发工具

2021-02-18 07:46:07

日志框架

2010-05-31 15:34:34

MySQL数据库

2010-05-27 15:56:56

MySQL数据库

2020-08-19 10:30:25

代码Python多线程

2016-12-02 08:53:18

Python一行代码

2024-11-12 11:52:50

2010-06-30 12:37:04

SNMP服务器

2020-09-09 16:00:22

Linux进程

2021-10-08 10:05:10

数据包三次握手HTTP

2021-05-17 05:07:41

Linux扫描仪Samba共享

2022-07-06 08:32:35

Python代码Matplotlib

2022-07-14 10:54:15

Python代码Matplotlib

2014-02-12 13:43:50

代码并行任务

2017-04-05 11:10:23

Javascript代码前端
点赞
收藏

51CTO技术栈公众号