项目里有一个发送邮件的需求,我从网上找了几种方法,列举如下:
1.
2.
3.
不过这个方法有几个问题:1.邮件的body是type=hideen的value值,并且显示的是message=.....,message是type=hideen的name,如果将name="message"换成
name="Content",那body的显示内容就变成了Content=.........。
2.如果内容里写的是汉字,那么在outlook里显示时就会乱码
最后我改良了这个代码,不用form进行发送邮件。
不过第三种方法的两个不同的方式,还有些地方不同:用form发送邮件不会出现自己outlook中的固定模板,但用a发送邮件的话会出现那种模板
2014/01/10新增加的内容
项目里发送邮件功能要求把receiver、subject、body都写好,操作者不需要不断地填写信息,这个功能容易实现,思路是写一个保存发送邮件信息的XML文件,用Xml Dom读取XML里的数据,并且把数据赋给text框。这个功能做好后又要求能够编辑receiver、subject、body信息,并且保存下来。
开始我一直以为把修改后的数据直接赋给XMl节点的nodeValue,然后用XMlDoc.save("message.xml"); ,但是XMlDoc没有save()方法,并且查找资料说js能够读取XMl文件,但是不能修改。即使修改了某个节点的nodeValue,也只是存在于客户端内存,实际的XMl文件没有任何变化。还有人说用FSO能够修改XML文件,但是FSO是IE的ActiveXObject对象里的属性,这种方法我不想用,也没有试试,不知道实际的结果到底是什么样的!
后来和组长说了这个问题,他说这个功能是我理解错误,XML文件当然是不能操作的,浏览器向服务器发送请求,XMl文件在服务器的硬盘里,浏览器禁止跨域操作。应该把修改的receiver、subject、body信息保存到本地,对客户进行个性化定制。如果他换了一台电脑或者浏览器,就显示原始的XMl信息。
天啊,原来是这样啊!我理解错了.................
最后我是把修改的receiver、subject、body信息保存到localStorage,如果没有人主动清理,那么它会永久保存在客户端。