电子邮件能让访问者方便地向网站提供反馈或联系信息。它可以自动填写抄送和密件抄送,甚至能自动填充主题行。下面介绍如何定制 Mailto功能。
实现 Mailto的基本html代码:<a href="mailto:stephen.zhaoyf@163.com">点击这里发邮件给站长!</a>
当访问者点击这个链接时,会调用他们客户端的email程序,并在收件人框中自动填上收件人的地址。下面,我们将分以下几步介绍如何增加mailto的功能。
第一步:
创建一个基本的mailto,包含收件人的地址。注意:后面的参数符需要采用英文的符号
第二步:
在收件人地址后用“?cc="开头,你可以填写抄送(CC:)地址,下面这个例子将实现该功能:
<a href="mailto:stephen.zhaoyf@163.com?cc=guest@163.net">点击这里发邮件给站长并“抄送”给guest!</a>
第三步:
就像下面这个例子一样,紧跟着抄送地址之后,写上"&bcc=",就可以填上密件抄送(BCC)地址了 (在添加这些功能时,第一个功能以"?"开头,后面的以"&"开头)。
<a href="mailto:stephen.zhaoyf@163.com?cc=guest@163.net&bcc=guest@163.net">点击这里发邮件给站长并同时“抄送”、“暗送”给guest!</a>
还可以同时发信给N个人!地址之间用逗号分开:
<a href="mailto:stephen.zhaoyf@163.com,guest@163.net,guest1@163.net">点击这里同时发送N个邮件!</a>
第四步:
用?subject=或者&subject(当前面还有抄送或暗送时使用)填上主题。
<a href="mailto:stephen.zhaoyf@163.com?subject=不好意思,只是做个实验!">点击这里发送有主题的邮件!</a>
更加夸张的是连邮件内容都可以事先写好!
<a href="mailto:stephen.zhaoyf@163.com?subject=不好意思,只是做个实验!&body=特别无聊,所以发现这么一个功能">这个邮件地址、内容都有了!以后可就懒了!</a>
下面我们来总结一下:
Mailto后为收件人地址,cc后为抄送地址,bcc后为密件抄送地址,subject后为邮件的主题,body后为邮件的内容,如果Mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的每一个都以“&”开头。下面是一个完整的实例:
Mailto:aaa@xxx.com?cc=bbb@yyy.com&bcc=ccc@zzz.com&subject=主题&body=邮件内容
乱码问题:
比如调用个下载程序,当下载的URL中含有中文的时候,无法下载,比如:
http://www.huachu.com.cn/itbook/booklist.asp?tsmc=汇编
试着用 .net 中的 Server.UrlEncode 函数进行转换。但是这样仍然不行,试验了很久也没有找到原因。后来怀疑 ASP.net中的Server.UrlEncode函数和ASP中的Server.URLEncode函数返回的值竟然不一样。一实验,竟然确实是。
试验代码:
ASP.net 中 如下代码?
Response.Write(Server.UrlEncode("汇编")); ?返回: 汇编
ASP 中 如下代码 Response.Write Server.URLEncode("汇编")?? 返回: ????
产生这个问题的原因:ASP.net 中的 Server.UrlEncode 默认是按照 UTF-8 编码方式进行处理的。而ASP中是按照本地设置编码方式进行处理的。
如果你在 ASP.net 下采用如下的编码: ASP 和 ASP.net 的结果就会一样:
Response.Write(HttpUtility.UrlEncode("汇编",Encoding.Default));
采用:Response.Write(HttpUtility.UrlEncode("汇编",Encoding.UTF8));? 返回的就是 Response.Write(Server.UrlEncode("汇编"));?? 返回的结果。