最近做网站运营用到了邮件营销,使用了搜狐的sendcloud邮件代发平台。要想使用sendcloud平台发送邮件给客户,就必须调用他们的API接口进行批量发送,那么问题来了。sendcloud提供了好几种编程语言可以调用API进行发送,有PHP、python、C#等几种,但上述语言我都不太懂,虽然代码不复杂,但由于语法基础需要从头学,加上平台提供了纯HTML的API发送方法,就打算放弃用那些编程语言来实现,而只是采用纯HTML来实现邮件发送。

纯HTML的发送很简单,无非是一个<form>表单 post方式提交到API接口,表单中用各种<input>存放邮件发送的各项参数,submit按钮触发后即可发送邮件。本人虽然不会编写专业的程序自动调用api批量发送邮件,但使用ASP程序,读取需要发送的邮件列表,然后逐个生成HTML表单进行发送,却也并不困难。但关键问题是,对于已经由ASP生成的包含不同客户邮件地址HTML代码,如何逐个地触发submit进行自动提交呢。不可能手工去点击吧?

通过请教百度师父,问题的到了解决。只需要在HTML文档中加入一段JS语句就可以实现了。如下所示:

<script language=javascript> setTimeout("document.form1.submit()",10000)
</script> 

需要说明的是,上述代码中的form1应该与需要自动提交的表单form的name属性保持一致,方可触发提交。也就是from表单必须有name属性,并且其值与JS中相应的值完全一样。JS中的setTimeout()函数,显然是一个延时的函数,其第二个参数,即为延时的时间,单位是毫秒,上述代码中的10000即为10秒钟。

当然如果是使用ASP批量生成需要逐个提交的表单,还需要考虑多个表单在不同时间(最好是间隔一定相同的时间)先后顺序提交的问题,以及多个form的name属性与多个JS中的setTimeout()函数一一对应的问题。这个需要使用ASP语言,在服务器端通过变量来实现,下面我们来看一段完整的代码:

<%Dim FsoDim myFileSet Fso = Server.CreateObject("Scripting.FileSystemObject")Set myFile = Fso.OpenTextFile(Server.MapPath("a.txt"),1,True)'A.TXT和ASP程序在同个目录下,如果没在一个目录,可以用绝对路径,把上一行的a.txt改为:d:\a.txtDim nnnnnn = 0While Not myFile.AtEndOfStreamEmail = myFile.ReadLine '取出一行数据存放到Email变量中。
%>   <script language=javascript> setTimeout("document.form<%=nnn%>.submit()",2000+120000*<%=nnn%>) //第一封在打开网页2秒后发出,以后的设置每隔2分钟发送一封,即2分钟=120000毫秒/1000/60</script>  <form name="form<%=nnn%>" action="http://api.sendcloud.net/apiv2/mail/send" method="post" target="_blank" enctype="multipart/form-data"><p>apiUser: <input type="text" value="apiuser值" name="apiUser"/></p><p>apiKey:  <input type="text" value="key值" name="apiKey"/></p><p>to: <input type="text" value="<%=Email%>" name="to"/></p><p>from: <input type="text" value="admin@abcde.com" name="from"/></p><p>fromName: <input type="text" value="发件人姓名" name="fromName"/></p><p>replyTo: <input type="text" value="reply@abcde.com" name="replyTo"/></p><p>cc: <input type="text" name="cc"/></p><p>bcc: <input type="text" name="bcc"/></p><p>subject: <input type="text" value="邮件标题" name="subject"/></p><p>html: <textarea rows="30" cols="50" name="html">邮件正文内容</textarea></p><input type="submit" value="Submit"/></form>
<%       nnn = nnn + 1WendmyFile.CloseSet myFile = NothingSet Fso = Nothing
%>

如上所示,通过定义nnn这个变量,并让其自动计数,来实现JS代码与form表单的一一对应。同时,nnn变量还可以用来控制时间间隔,实现相同间隔时间内自动触发提交表单,即为setTimeout("document.form<%=nnn%>.submit()",2000+120000*<%=nnn%>)中的2000+120000*<%=nnn%>这里。

网页自动提交Form表单的方法相关推荐

  1. 防止INPUT回车自动提交FORM表单

    在做广菲克项目里的一个修改功能时,发现form表单里只有一个input时,按回车form就自动提交了. form中的input只有一个,input获得焦点时按回车会form自动提交: <!doc ...

  2. form通过ajax提交表单,Jquery通过Ajax方式来提交Form表单

    今天刚好看到Jquery的ajax提交数据到服务器的方法,原文是: 保存数据到服务器,成功时显示信息. jQuery 代码: $.ajax({ type: "POST", url: ...

  3. 超链接提交form表单

    这篇文章主要介绍了js实现a标签超链接提交form表单的方法,涉及javascript针对表单操作的相关技巧,需要的朋友可以参考下 本文实例讲述了js实现a标签超链接提交form表单的方法.分享给大家 ...

  4. 如何提交form表单嵌套(提交表单外的数据方法 )

    如何提交form表单嵌套,form表单不能嵌套使用! 解决思路:将嵌套的form表单提取到最外层,将表单外要提交的数据,提交随表单提交而提交! 方法如下: <form action=" ...

  5. 提交form表单方法

    ajax提交form表单,这在日常项目中是经常用到的.前台无论是简单的html.jsp或者使用了easyui框架,只要是提交表单一般都会使用到ajax. ajax提交表单分为两种: 1.无返回结果的, ...

  6. 使用js提交form表单的两种方法

    提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...

  7. html表单调用js方法,使用js提交form表单的两种方法

    提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...

  8. ajax提交form表单到php,ajax如何提交form表单数据?ajax提交form表单数据的方法介绍...

    对于form表单数据的提交,我们一般都会想到使用ajax提交,那么,ajax如何来提交form表单数据呢?接下来的这篇文章就来给大家来介绍关于ajax提交form表单数据方法,有需要的伙伴可以参考一下 ...

  9. ajax提交form表单方法

    ajax提交form表单方法 由 driventokill 创建,Alma 最后一次修改 2018-04-23 15:46:20 ajax提交form表单,这在日常项目中是经常用到的.前台无论是简单的 ...

最新文章

  1. [vue] 说说你对vue的表单修饰符.lazy的理解
  2. leetcode python3 简单题202. Happy Number
  3. aix服务器设备型号,IBM产品系列和AIX系统版本
  4. 中继联通chinaunicom热点。求路由推荐。-无线路由器-中国无线论坛 -
  5. 7.1 封装(Java包(package)的概念+访问权限修饰符(public/private/protected/default))
  6. Count Primes
  7. 语音信号处理——线性预测编码LPC
  8. failed shard on node [XXX], failed recovery, failure RecoveryFailedException
  9. 【转】十分钟了结MySQL information_schema
  10. 从隐式转换案例,来挖掘开发人员的技能提升
  11. 个人微信号API接口
  12. WiFi基础知识讲解
  13. 在职研究生计算机专业好考么,湖南在职研究生计算机专业好考不
  14. JavaScript 教程「9」:DOM 元素获取、属性修改
  15. vue2进阶篇:vue-router之“使用独享路由守卫”
  16. 软件工程知识-软件测试
  17. hacking 麦步手表之(1)精简模拟界面
  18. 【CYH-02】NOIp考砸后虐题赛:成绩:题解
  19. 从零开始搭建创业公司后台技术栈
  20. 用C语言实现阶乘的递归

热门文章

  1. xshell免费版安装使用
  2. MAC添加SSH到GitHub
  3. Python Pandas的DataFrame对象中轴的意义,axis=0 或者axis=1代表什么意思?
  4. Google更新AIY套件包:门槛更低,适合初级玩家!
  5. 甜点cc的2022走心总结
  6. flutter httpClient的封装 dio
  7. Vue中实现图标选择器
  8. 微服务[学成在线] day20:项目总结
  9. 百度系无人车创业群像
  10. HttpServletResponse响应图片,文字