|
作者: yct168 [yct168] 论坛用户 | 登录 |
aoming认为到目前为止,问题已有明确答案,本贴已被冻结,不再接受更多的回复 大家好,我想在我的网站上建一个EMAIL表单提交。 |
地主 发表时间: 12/11 22:39 |
回复: Aoming [aoming] 版主 | 登录 |
HTML源代码如下: <FORM action=mailto:yourname@xxx.xxx> 平时常见action的值是web脚本,比如www.20cn.net/cgi-bin/aoming.cgi,而这里是把action属性的值改成邮箱地址。 |
B1层 发表时间: 12/11 23:12 |
回复: yct168 [yct168] 论坛用户 | 登录 |
看不懂 |
B2层 发表时间: 12/12 18:34 |
回复: zybzc [zybzc] 论坛用户 | 登录 |
我觉得Aoming是说如何在网页里建个发信的功能 那样的话 还是得启用OUTLOOK填信息发信 有点麻烦 什么都要填 |
B3层 发表时间: 12/13 10:27 |
回复: Aoming [aoming] 版主 | 登录 |
不好14,偶正是这个意思,我到不觉得麻烦,因为我的outlook平时就设置好了,发送只需要点一下确认就ok。 楼主说的 “想在我的网站上建一个EMAIL表单提交。就是说别人在网页上填上一些信息就把内容发到我指定的邮箱” 这个确实是完好无缺的实现了啊 |
B4层 发表时间: 12/14 00:21 |
回复: kikoo [kikoo] 论坛用户 | 登录 |
要是别人发个图片捆个木马。呵呵呵~~~~~~~~~ 你就挂了。。。。。。。。。。。 |
B5层 发表时间: 12/14 23:31 |
回复: yct168 [yct168] 论坛用户 | 登录 |
这种提交方式,需要ASP空间的支持吗? 能不能直接就发到指定邮箱的? 请版主详细一点,行吗? |
B6层 发表时间: 12/14 23:32 |
回复: kikoo [kikoo] 论坛用户 | 登录 |
POP3方面的吧。我不太懂。不过现在用这种方法的不多。 |
B7层 发表时间: 12/14 23:35 |
回复: Aoming [aoming] 版主 | 登录 |
在所有的回复之前,想先说,用这种方式是可以直接发到邮箱的,不需要asp或者php支持,但是,不推荐这样的方法,除非你非常清楚自己的表单需要反馈回什么信息。用这样的方式绝大部分情况下还不如直接通过超链接<a href=mailto:yourname@xxx.xxx>启动邮件客户端给站长反馈信息。因为这样的方式不仅需要浏览者习惯用foxmail、outlook等邮件客户端工具收发email,而且对于站长来说也有要求: 表单提交的信息没有进行url解码,收到后需要你自己对邮件中的内容进行分析,所有中文字符和特殊字符都经过十六进制编码了,只有表单提交的数字、英文字母和下划线能直接看到[/color]。实在是表面省力实际却不讨好的事。 对于没钱买动态空间(asp等)又渴望通过网页直接能收到浏览群信息反馈的朋友来说,可以考虑。(算我吃多了没事做,居然讨论起这个来) ========================================= 首先看看怎么实现: 做为站长,只需要把类似于 <form name="form1" method="post" action="mailto:aoming@20cn.org"> <input type="text" name="textfield"> <input type="submit" name="Submit" value="go_og"> </form> 这样的表单编辑好后放到网页中,接下来把工作扔给浏览者。 ――浏览者需要在他电脑中的邮件客户端比如outlook的相关设置中将SMTP邮件发送服务器的主机设置好(比如他在sina有免费邮箱,那他可以设置为smtp.sina.com.cn,在服务器身份验证中填他自己的用户名和口令) 最后,需要站长打开邮箱查看邮件,在附件中打开文件,查看别人反馈的信息就可以啦 举个稍微实际点的例子: 你是一个老师,把选择题的放在网页中让学生做题,表单内容为 试题举例 ================================ <form name="form1" method="post" action="mailto:aoming@20cn.org"> <p align="center">20CN论坛网站建设版考试题</p> <p>一、单选题:</p> <p>1、20CN网站的颜色基调是:</p> <p> <input type="radio" name="check01" value="A"> A.蓝色 <input type="radio" name="check01" value="B"> B.绿色 <input type="radio" name="check01" value="C"> C.黄色 <input type="radio" name="check01" value="D"> D.红色</p> <p>2、20CN网站的站长是:</p> <p> <input type="radio" name="check02" value="A"> A.Netdemom <input type="radio" name="check02" value="B"> B.依依 <input type="radio" name="check02" value="C"> C.xiean <input type="radio" name="check02" value="D"> D.谁知道是哪个家伙(嘿嘿,如果你错这个题,不如去装豆腐死)</p> <p>3、more……</p> <p align="center"> <input type="submit" name="Submit" value="go_a"> </p> </form> ================================= 当提交成功后,查看你的新邮件,可以发现在邮件附件中的文本内容 ================================ check01=A&check02=B&Submit=go_a ================================ 那么作为老师的你,只需要把第一道题check01的答案“A”,以及第二题check02的答案“B”等与你手中的“标准答案”比较,就可以给这个学生打分了。 至于其他部分,&等是什么意思,可以参看 select标签加入multiple属性后的CGI数据提交格式 CGI技术及其开发 |
B8层 发表时间: 12/15 01:41 |
回复: Aoming [aoming] 版主 | 登录 |
引用: 你可以试试通过上面的东西发给我啊。 你说的什么木马不木马的根本就不是这个方法可能带来的问题,直接发邮件or通过后台处理了的邮件一样可以捆绑木马,干嘛要把感染爱滋病的原因归结在在家做贤妻的老婆outlook身上呢? |
B9层 发表时间: 12/15 01:49 |
回复: TomyXu [tomyxu] 论坛用户 | 登录 |
很简单! <a href=mailto:"xxx@xxx.xxx?subject="邮件标题">连接</a> 注意,邮件标题之间不能有空格。 |
B10层 发表时间: 12/15 20:58 |
回复: yct168 [yct168] 论坛用户 | 登录 |
先谢谢版主详细的回答,让我好感动。。。 把您说的代码编辑上传之后,就能够使用了吧。 浏览者,填好表单的内容之后,浏览如单击提交,这样就发到站长的邮箱。是这个原理吧 但按提交之后,显示的页面是什么呢?? 我现在要制作的是一个订单的表单,有ASP空间,有什么建议,有没有其它好的教程? 再次谢谢版主。。谢谢! |
B11层 发表时间: 12/17 03:30 |
回复: yct168 [yct168] 论坛用户 | 登录 |
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>20CN论坛网站建设版考试题</title> </head> <body> <form name="form1" method="post" action="mailto:www.yutao_006@163.com"> <p align="center">20CN论坛网站建设版考试题</p> <p>一、单选题:</p> <p>1、20CN网站的颜色基调是:</p> <p> <input type="radio" name="check01" value="A"> A.蓝色 <input type="radio" name="check01" value="B"> B.绿色 <input type="radio" name="check01" value="C"> C.黄色 <input type="radio" name="check01" value="D"> D.红色</p> <p>2、20CN网站的站长是:</p> <p> <input type="radio" name="check02" value="A"> A.Netdemom <input type="radio" name="check02" value="B"> B.依依 <input type="radio" name="check02" value="C"> C.xiean <input type="radio" name="check02" value="D"> D.谁知道是哪个家伙(嘿嘿,如果你错这个题,不如去装豆腐死)</p> <p>3、more……</p> <p align="center"> <input type="submit" name="Submit" value="go_a"> </p> </form></body> </html> ---我用上面的代码,上传了网页 http://yutao520.y365.com/cc.htm 请版主去看看,我单击提交,但不到到我的邮箱。 - |
B12层 发表时间: 12/17 15:16 |
回复: thumb [thumb] 论坛用户 | 登录 |
既然你有asp空间,那肯定能支持Jmail吧,这个第三方组件才是最好的。 |
B13层 发表时间: 12/17 18:20 |
回复: yct168 [yct168] 论坛用户 | 登录 |
JMAIL 是第三方组件呀? 具体要怎么做。 但还是先用HTML的吧 |
B14层 发表时间: 12/17 18:47 |
回复: zml2236 [zml2236] 论坛用户 | 登录 |
to楼主; 我在键网方面可以说是菜鸟中的菜鸟了,所以我帮不了了,只有等高说来解决,不过你的这个想法很好,更方便了浏览你网页的人,希望你能尽快找到答案, to斑竹 你好,斑竹,我有一个疑问:就是htnl原代码<FORM action=mailto:yourname@xxx.xxx> 他的含义是什么?。FORM 代表什么?action又是代表什么?什么是WEB脚本?www.20cn.net/cgi-bin/aoming.cgi他的最后一个aoming.cgi我看见的网站中怎么有时候是。asp或者是。php他门都代表什么 啊? to紫龙; 如果真的和你说的一样的话,那斑竹说的哪个办法就没有什么意义了。 to斑竹; ......希望你能解决我上面的疑问。谢谢 To停止刷屏: 你说的很有14,能不详细说说你的想法。。。??? TO黑泽晴新: 什么是ASP空间?我很想知道。 TO停止刷屏: 什么是POP3?我记得好象和电邮有关,能给我讲讲吗?你说用这个方法干什么啊?不解 再TO斑竹: 斑竹,你说的ASP支持和PHP支持有什么1区别啊?URL解码是什么概念?”只有表单提交的数字、英文字母和下划线能直接看到[/color]”最后的[/color]是什么? <form name="form1" method="post" action="mailto:aoming@20cn.org"> <input type="text" name="textfield"> <input type="submit" name="Submit" value="go_og"> </form> 这段是什么意思?你说的SMTP邮件发送服务器是什么?SMTP是什么意思? 看到很多的<p>是什么?<>代表什么?还有就是我做就你的哪个题之后GOGO说没有找到文件是怎么会事? TO TOMYXU: 你说的<a href=mailto:"xxx@xxx.xxx?subject="邮件标题">连接</a> 和斑竹的<a href=mailto:yourname@xxx.xxx>有什么区别? TO 黑泽晴心 我还是不懂什么ASP空间?他和一般空间有什么区别? 又是刚才那题,我刚才用了用,还是说找不到文件?? TO THUMB: 又是ASP空间?,你说的JMAIL是什么?还有,什么是第3方组件,他的概念是什么? 希望大家能解决我的疑问 谢谢 |
B15层 发表时间: 12/17 23:35 |
回复: yct168 [yct168] 论坛用户 | 登录 |
顶!! |
B16层 发表时间: 12/19 13:45 |
回复: Aoming [aoming] 版主 | 登录 |
回复B11: 提交后的页面是什么样,你看看我给的那个演示页面就知道了啊。 用 asp 制作表单,可以和斑竹绝对零度一起讨论。我不了解asp,所以帮不上忙了 有asp空间,寻求定单表单的源代码,可以上很多建站资源类的网站去找,比如www.chinaz.com等等,不一一列举了,在www.google.com上输入关键字“免费+asp源码”会出来很多相关的。 回复B14楼:与JMAIL相关的内容你也可以通过google搜索。在搜索到有用的信息后非常欢迎你把这样的信息再发回本版。 回复B15: 1、FORM 是 HTML中的饿一个标签,以<form>……</form>的形式出现。本版有夜色撩人写的HTML基础教程,你可以通过页面顶部的关键字“跟我学HTML”搜索,大约在40页以后。 2、从理论体系上来说,不管asp、php、jsp都属于CGI这个规范,但是现在绝大多数时候没有进行严格意义的区分,而是把以通过Perl语言开发的cgi程序称为CGI,实在是。。。 .asp或者.cgi只是使用了不同开发语言开发开发的程序的文件后缀名。 更多asp和php以及cgi的介绍信息还是请到本版搜索. 3、POP3是一个邮件接收协议,SMTP是邮件发送协议 更多的,我建议你先阅读一些关于上网类的基础的书籍。然后很多问题就有个大致的了解了。 有了强烈的求知欲并发问是好事,可是一味的期待别人回答而不采纳正确的方法就是你的不对了,昨天我给你留言了,希望先进行搜索再提问,不知你看到了没有? [此贴被 Aoming(aoming) 在 12月19日18时34分 编辑过] |
B17层 发表时间: 12/19 18:44 |
回复: yct168 [yct168] 论坛用户 | 登录 |
感谢斑竹的回复! 你提供的那种方法可以用,谢谢! 但我现在碰到了另一个问题,我希望能通过如下的方式来做这种表单,因为是一种客户的订单的表单,所以请看一下。 http://www.skycn.com/contact.htm 在上面这个页面,填好信息之后,单击提交,就会跳出一个画面,和你说的那个通过OUT……的方式是不一的吧,如果要实现如上面所说的页面,要怎么弄,谢谢! (另,当发送完成邮件之后,我们是通过查看附件的,但我们能通过与用户提交时方式相同的页面,直接在邮件中看到吗?) |
B18层 发表时间: 12/19 22:49 |
回复: yct168 [yct168] 论坛用户 | 登录 |
顶 |
B19层 发表时间: 03-12-23 01:14 |
回复: yct168 [yct168] 论坛用户 | 登录 |
顶 |
B20层 发表时间: 04-01-04 17:47 |
回复: zybzc [zybzc] 论坛用户 | 登录 |
人家是ASP的 动态 有数据库 在管理台就能看到提交的信息 你们现在讨论是简单的HTML实现邮件发送 你有就可以实现 |
B21层 发表时间: 04-01-04 17:51 |
回复: Aoming [aoming] 版主 | 登录 |
像http://www.skycn.com/contact.htm 这样通过web页面,利用CGI等将表单发到邮箱中,可以称之为webmail。只用静态网页无法实现/。 查看它的html源代码,你可以看到 <form action="webmail.php" method="post"> <input type="hidden" name="to" value="contact@skycn.com"> 它的action是指象webmail.php这个脚本的。并且用了两个隐藏在input的属性以及属性的值name(对应“to”)和value(对应contact@skycn.com)用来干什么的呢? 请看哓蓝以前在论坛中提供的一个发送邮件的php脚本 送大家一个php利用socket发送mail的函数,可以直接调用的 =========== the BEGIN ================ <? ####### 本程式可发Email ######### ### 本程式由 "中国频道" 提供 ///以下将表单的内容写入message中 while ( list( $key, $val ) = each( $HTTP_POST_VARS ) ) { $message .= "${key}: ${val}\r\n"; } if ($message == "") $message = "无内容"; if ($to == "") $to = "yourname@x263.net"; //如果表单中没有收件人,请设置默认收件人e-mail if ($from == "") $from = "yourname@x263.net"; //如果表单中没有寄件人,请设置默认寄件人e-mail if ($subject == "") $subject = "无主题"; //如果表单中没有指定主题,请设置默认主题 if ($end = send22($to,$from,$subject, $message ) ) echo $end; else echo "发送成功!"; function send22($to,$from,$subject, $message ) { //使用本函数之前,务必请定义好以下变量 ############################################# $smtp = "61.129.74.250"; //您的SMTP 服务器供应商,可以是域名或IP地址 $check = 1; //SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证,如不清楚请与你的smtp 服务商联系。 if ($check) { $username = "yourname"; //您的email帐号名称 $password = "yourpassword"; //您的email密码 } $s_from = "yourname@x263.net"; //此email 必需是发信服务器上的email ############################################### //连接服务器 $fp = fsockopen ( $smtp, 25, $errno, $errstr, 60); if (!$fp ) return "联接服务器失败".__LINE__; set_socket_blocking($fp, true ); $lastmessage=fgets($fp,512); if ( substr($lastmessage,0,3) != 220 ) return "错误信息:".$lastmessage.__LINE__; //HELO $yourname = "YOURNAME"; if($check == "1") $lastact="EHLO ".$yourname."\r\n"; else $lastact="HELO ".$yourname."\r\n"; fputs($fp, $lastact); $lastmessage == fgets($fp,512); if (substr($lastmessage,0,3) != 220 ) return "错误信息$lastmessage".__LINE__; while (true) { $lastmessage = fgets($fp,512); if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) ) break; } //身份验证 if ($check=="1") { //验证开始 $lastact="AUTH LOGIN"."\r\n"; fputs( $fp, $lastact); $lastmessage = fgets ($fp,512); if (substr($lastmessage,0,3) != 334) return "错误信息$lastmessage".__LINE__; //用户姓名 $lastact=base64_encode($username)."\r\n"; fputs( $fp, $lastact); $lastmessage = fgets ($fp,512); if (substr($lastmessage,0,3) != 334) return "错误信息$lastmessage".__LINE__; //用户密码 $lastact=base64_encode($password)."\r\n"; fputs( $fp, $lastact); $lastmessage = fgets ($fp,512); if (substr($lastmessage,0,3) != "235") return "错误信息$lastmessage".__LINE__; } //FROM: $lastact="MAIL FROM: $s_from" . "\r\n"; fputs( $fp, $lastact); $lastmessage = fgets ($fp,512); if (substr($lastmessage,0,3) != 250) return "错误信息$lastmessage".__LINE__; //TO: $lastact="RCPT TO: $to" . "\r\n"; fputs( $fp, $lastact); $lastmessage = fgets ($fp,512); if (substr($lastmessage,0,3) != 250) return "错误信息$lastmessage".__LINE__; //DATA $lastact="DATA\r\n"; fputs($fp, $lastact); $lastmessage = fgets ($fp,512); if (substr($lastmessage,0,3) != 354) return "错误信息$lastmessage".__LINE__; //处理Subject头 $head="Subject: $subject\r\n"; $message = $head."\r\n".$message; //处理From头 $head="From: $from\r\n"; $message = $head.$message; //处理To头 $head="To: $to\r\n"; $message = $head.$message; //加上结束串 $message .= "\r\n.\r\n"; //发送信息 fputs($fp, $message); $lastact="QUIT\r\n"; fputs($fp,$lastace); fclose($fp); return 0; } ?> ================== the END ======================== 虽然这个PHP脚本跟http://www.skycn.com/contact.htm 后台的PHP脚本在处理细节和功能上有些差异,但基本方法都是一样的。 首先都是先由表单将用户提交的信息通过浏览器发送,连接到服务器后通过网关找到可供处理信息的程序,由程序处理好的信息再返回给web服务器,web服务器寻找SMTP服务器由它承接最后的邮件发送工作。 而<input type="hidden" name="to" value="contact@skycn.com">这个就是用来设置默认的收件 人的。 过程涉及到的相关知识还是很多。比如脚本怎样正确解码过滤收集好用户表单提交的信息并交给下一步,脚本是如何通过邮件发送协议SMTP实现的发送过程,你的脚本在写的过程中可能安全上存在问题等。感兴趣我就再转些资料上来。 [此贴被 Aoming(aoming) 在 02月14日23时39分 编辑过] |
B22层 发表时间: 04-02-14 23:37 |
回复: Aoming [aoming] 版主 | 登录 |
to be continue。。。 1、 浅析FORM表单提交数据经CGI编码后的解码过程 2、 通过SMTP协议发送邮件大致过程为――连接到SMTP服务器――服务器发送给我们一个220的消息表示欢迎类的东东――我们向服务器发送HELO的命令――服务器响应再返回220表成功――我们继续发送RCPT命令,参数带邮件发送对象的email地址。。(不重复了我直接找个人家的帖子连接过来说明了) 参看http://www.fanqiang.com/cgi-bin/search/go,搜索关键字“SMTP” --------------------------------------------------------- 1 RFC821-简单邮件传输协议(SMTP)中文版 - 3 (应用技术/其它)2002-01-29 21:05:38 2 RFC821-简单邮件传输协议(SMTP)中文版 - 2 (应用技术/其它)2002-01-29 21:05:06 3 RFC821-简单邮件传输协议(SMTP)中文版 - 1 (应用技术/其它)2002-01-29 21:04:29 4 对基于qmail的smtp用户验证的总结和完整安装设置方法 (应用技术/Qmail)2001-12-10 09:10:01 5 Qmail使用SMTP发信的设置问题集 (应用技术/Qmail)2001-12-10 08:10:00 6 solaris7下的SMTP和POP3的安装 (系统管理/Solaris)2001-10-02 09:00:00 7 RedHat 7.1上Sendmail的SMTP问题 (应用技术/Sendmail)2001-09-04 10:00:00 8 一个在Solaris下配置SMTP(sendmail)+POP3(qpopper)的例子 (应用技术/Sendmail)2001-08-07 09:00:00 9 带SMTP认证功能的sendmail配置 (应用技术/Sendmail)2001-07-24 12:00:01 10 网络管理员指南 -14.建立smail并运行 -10>SMTP基础的传输器,主机名条件 (网络管理/其它)2001-07-18 17:04:01 11 简单邮件传输协议SMTP封装类 (编程技术/网络编程)2001-07-04 08:10:00 12 SMTP安全手册―Sendmail服务器安全 (应用技术/Sendmail)2001-06-26 11:00:00 13 SMTP安全手册―Qmail安全 (应用技术/Qmail)2001-06-26 10:08:00 14 SMTP安全手册―理论基础 (安全技术/其它)2001-06-26 09:04:00 15 SMTP协议原始命令码和工作原理 (应用技术/Sendmail)2001-04-21 18:16:42 16 带SMTP认证功能的qmail配置 (应用技术/Qmail)2001-04-21 16:58:41 -------------------------------------------------------------------------------- 够详细了,想看E文原版RFC821,关于MIME部分RFC822(http://www.ietf.org/rfc.html) 另: 一些人家搞好的webmail产品(先说我没试过,有兴趣可以自己试) http://www.igenus.org/webmail/othersite.html |
B23层 发表时间: 04-02-14 23:59 |
回复: Aoming [aoming] 版主 | 登录 |
绝对零度:有空弄个asp的邮件发送脚本上来吧:) |
B24层 发表时间: 04-02-15 00:01 |
回复: newekin [newekin] | 登录 |
不知道要哪个组件的呢? |
B25层 发表时间: 04-02-15 00:26 |
回复: Aoming [aoming] 版主 | 登录 |
管它哪个组建呢,你看着办吧,扔一个上来,完善这个话题,大家有兴趣继续讨论时你就灌死他:) 没兴趣也不要紧,反正没啥人问jsp,常见的情况都发了。以后有人问时直接扔连接了 |
B26层 发表时间: 04-02-15 00:40 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号