求教:如何设计可以将表单内容提交到指定邮箱的网页?
初学者求教:现在有许多网站的诸如“客户服务”或“联系我们”栏目提供一个表单,限制用户输入内容,然后点“提交”将表单的内容发到指定的E-mail中。请问如何实现这种功能,最好能提供代码参考。 问题点数:50、回复次数:18Top
1 楼net_lover(【孟子E章】)回复于 2005-08-02 16:44:22 得分 5
http://www.yy0736.com/webpage/asp/jmail6.htm
ASP用JMail、CDO发送邮件Top
2 楼net_lover(【孟子E章】)回复于 2005-08-02 16:45:54 得分 0
如果用客户端程序发,可以这样
<a href="mailto:xx@xx.xx">发送,</a>Top
3 楼goodstuday(路漫漫)回复于 2005-08-02 16:46:25 得分 0
可以用jmail等组件,也可以直接把表单的action值设成yourEmail@xxx.comTop
4 楼roseandwort(常春藤)回复于 2005-08-02 17:55:52 得分 40
要用jmail组件,客户填写页代码:
<html>
<head>
<title>公司</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="css.css" type="text/css">
<!--
function check()
{
var mb=document.form2
if(mb.orderlist_name.value=="")
{
alert("请填写你的姓名!!")
mb.orderlist_name.focus()
return false
}
if(mb.orderlist_unit.value=="")
{
alert("请填写你的公司名称!")
mb.orderlist_unit.focus()
return false
}
if(mb.orderlist_mail.value=="")
{
alert("E-mail地址不能为空!!")
mb.orderlist_mail.focus
return false
}
var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_@.";
var checkStr = mb.orderlist_mail.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (mb.orderlist_mail.value.length < 6)
{
allValid = false;
}
if (!allValid)
{
alert("您输入的 \"电子邮件地址\" 无效!");
mb.orderlist_mail.focus();
return (false);
}
if(mb.orderlist_tell.value=="")
{
alert("请填写你的电话号码!!")
mb.orderlist_tell.focus()
return false
}
if(mb.orderlist_tell.value.length<7)
{
alert("你填写的电话号码不正确!!")
mb.orderlist_tell.focus()
return false
}
var checkOK = "0123456789-()";
var checkStr = mb.orderlist_tell.value;
var TelallValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
TelallValid = false;
break;
}
}
if (!TelallValid)
{
alert("电话里出现非法字符!");
mb.orderlist_tell.focus();
return false;
}
}
-->
</SCRIPT>
</head>Top
5 楼roseandwort(常春藤)回复于 2005-08-02 17:57:43 得分 0
<body bgcolor="#FFFFFF" text="#000000" topmargin="0" >
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="58" align="center" valign="middle" class="heading2">网络销售</td>
</tr>
<tr>
<td bgcolor="#FF6600" height="1"><img src="images/spacer.gif" width="1" height="1"></td>
</tr>
</table>
</tr>
</table>
</td>
</tr>
<FORM id=form1 name=form2 onsubmit="return check();"
action=order.asp method=POST>
<tr>
<td valign="top" class="content"> (注:带 * 号者为必填字段)
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100"><font color="#FF0000">*</font>姓名:</td>
<td>
<input name="orderlist_name" type="text" id="orderlist_name" size="8">
</td>
</tr>
<tr>
<td width="100"><font color="#FF0000">*</font>公司名称:</td>
<td>
<input name="orderlist_unit" type="text" id="orderlist_unit">
</td>
</tr>
<tr>
<td width="100">所属行业:</td>
<td>
<input name="orderlist_message" type="text" id="orderlist_message">
</td>
</tr>
<tr>
<td width="100">地址:</td>
<td>
<input name="orderlist_adds" type="text" id="orderlist_adds">
</td>
</tr>
<tr>
<td width="100">城市:</td>
<td>
<input name="sheng" type="text" id="sheng" size="6">
</td>
</tr>
<tr>
<td width="100">邮政编码</td>
<td>
<input name="guojia" type="text" id="guojia" size="6">
</td>
</tr>
<tr>
<td width="100"><font color="#FF0000">*</font>E-mail:</td>
<td>
<input name="orderlist_mail" type="text" id="orderlist_mail">
<font color="#FF0000">EMAIL请用标准格式填写否则将无法提交</font> </td>
</tr>
<tr>
<td width="100"><font color="#FF0000">*</font>确认E-mail:</td>
<td>
<input name="orderlist_mail2" type="text" id="orderlist_mail2">
</td>
</tr>
<tr>
<td width="100"><font color="#FF0000">*</font>电话号码:</td>
<td>
<input name="orderlist_tell" type="text" id="orderlist_tell" size="12">
</td>
</tr>
<tr>
<td width="100">传真:</td>
<td>
<input name="orderlist_fax" type="text" id="orderlist_fax" size="12">
</td>
</tr>
<tr>
<td width="100">您订购哪种产品?</td>
<td>
<input name="orderlist_fast" type="text" id="orderlist_fast">
</td>
</tr>
<tr>
<td colspan="2">如果有什么其它问题或要求请在下框中填写: </td>
</tr>
<tr>
<td colspan="2">
<textarea name="orderlist_speak" cols="50" id="orderlist_speak" rows="8"></textarea>
</td>
</tr>
</table>
<tr>
<td height="44" valign="middle"> <img src="images/spacer.gif" width="40" height="1"><input type="submit" name="Submit" value="提交">
</td>
</tr>
</FORM>
</table>
</body>
</html>
Top
6 楼roseandwort(常春藤)回复于 2005-08-02 17:59:01 得分 0
提交页代码:
<!--#include file="conn.asp"-->
<%
set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from feedback "
rs.open sql,conn,1,3
rs.addnew
rs("orderlist_message")=request("orderlist_message")
rs("orderlist_speak")=request("orderlist_speak")
rs("orderlist_name")=request("orderlist_name")
rs("orderlist_unit")=request("orderlist_unit")
rs("orderlist_adds")=request("orderlist_adds")
rs("orderlist_mail")=request("orderlist_mail")
rs("orderlist_tell")=request("orderlist_tell")
rs("orderlist_fax")=request("orderlist_fax")
rs("orderlist_fast")=request("orderlist_fast")
rs("guojia")=request("guojia")
rs("sheng")=request("sheng")
rs("shijian")=date()
rs.update
%>
<html>
<head>
<title>信息提交成功!</title>
<meta http-equiv="目录类型" content="文本/html; 字符集=gb2312">
<meta http-equiv="refresh" content="2;url=sales.html">
<style type="text/css">
<!--
body { font-size: 9pt}
table { font-size: 9pt}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<center>
<p> </p>
<p> </p>
<p> </p>
<%="<font color='red' ><strong>你订单的内容提交成功.<br>我们会尽快跟你联系。</strong></font>"%> <br>
</center>
</body>
</html>Top
7 楼lj1979(Drizzt)回复于 2005-08-02 20:06:45 得分 0
谢谢 roseandwort(常春藤)提供代码!我看了你的代码,请问您的代码的哪个语句表达了我所要求的指定的e-mail地址,比如我要表单发到XXX@163.com,在代码的哪里体现?
另外,我的网站是存放在虚拟主机上的,如何才能知道其支持Jmail组件发送邮件?Top
8 楼saobaxing(扫把)回复于 2005-08-02 20:15:43 得分 5
<%
set mycdo=Server.CreateObject("CDONTS.NewMail")
mycdo.Body="第一封邮件"
mycdo.From="我自己的邮箱@163.com"
mycdo.To="对方的邮箱@163.com"
mycdo.AttachFile "c:\mytxt.txt" '邮件附带的附件
mycdo.send '邮件发送咯~~~
set mycdo=Nothing
%>
简洁明了 傻瓜版~~~拉拉拉拉Top
9 楼saobaxing(扫把)回复于 2005-08-02 20:21:09 得分 0
roseandwort(常春藤) 你代码里关于验证邮箱的那段真的暴复杂 偶提供一个
<SCRIPT LANGUAGE="JavaScript">
if ((form1.email.value.indexOf("@") == -1) || (form1.email.value.indexOf(".") == -1)){
alert("请查看E-mail地址是否正确,请重录入!");
form1.email.focus();
return false;
}
</script>Top
10 楼rayFairy()回复于 2005-08-02 23:04:16 得分 0
虽然复杂,但是准确率高。
TO:saobaxing(扫把)
如果我输入 你好@我不好.我们都不好
这在你的程序里被判断错误,在那个复杂的里面就被检验出来了呵呵。
可是我又觉得没人这么疯,没事搞这东西玩Top
11 楼roseandwort(常春藤)回复于 2005-08-03 12:42:37 得分 0
噢,不好意思楼主,我的那个提交页的代码是提交到后台管理系统的,我刚发现。正确的提交页代码类似如下:
<%
mailbody=mailbody &"<html>"
mailbody=mailbody &"<head>"
mailbody=mailbody &"<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
mailbody=mailbody &"<title>表单</title>"
mailbody=mailbody &"</head>"
mailbody=mailbody &"<body>"
mailbody=mailbody &"在线订购表单<br>"
mailbody=mailbody &"公司(機構)名稱:"&request("company")&"<br>"
mailbody=mailbody &"聯繫人:"&request("contact")&"<br>"
mailbody=mailbody &"通訊地址:"&request("address")&"<br>"
mailbody=mailbody &"郵編:"&request("postcode")&"<br>"
mailbody=mailbody &"電話:"&request("tel")&"<br>"
mailbody=mailbody &"手機:"&request("mobile")&"<br>"
mailbody=mailbody &"傳真:"&request("fax")&"<br>"
mailbody=mailbody &"E-mail:"&request("orderlist_mail")&"<br>"
mailbody=mailbody &"公司網址:"&request("website")&"<br>"
mailbody=mailbody &"訂購產品型號:"&request("chanping")&"<br>"
mailbody=mailbody &"訂購産品數量:"&request("quantity")&"<br>"
mailbody=mailbody &"簡短留言:"&request("message")&"<br>"
mailbody=mailbody &"</body>"
mailbody=mailbody &"</html>"
if Cint(request("send"))=1 then
on error resume next
set mymail=server.CreateObject ("CDONTS.Newmail")
mymail.mailformat=0
mymail.bodyformat=0
mymail.from ="admin@hichina.com"
mymail.to ="sales@sina.com.cn"
mymail.subject ="在线订阅表单"
mymail.body =mailbody
mymail.send
if err.number<>0 then
response.write err.description
response.end
end if
set mymail=Nothing
end if
%>
<script LANGUAGE="JavaScript">
<!--
setTimeout('window.close();', 2000);
// -->
</script>
<body background="../profile/images/bg.gif">
<p align="center"><font color="#0000CC"><b>本頁2秒後自動關閉!</b></font></p>
Top
12 楼roseandwort(常春藤)回复于 2005-08-03 12:44:24 得分 0
虚拟主机也是租的吧?可以问一下他们是否支持或者单买,在租空间的时候可以要求他们送的呵^_^Top
13 楼alix_zhou(兰戈)回复于 2005-08-03 12:47:47 得分 0
<FORM id=form1 name=form1 action=mailto:要发送的邮箱帐号 method=POST>就可以了
mailto要不要打引号,我就忘了,试试吧
Top
14 楼loveasp007(爱死拼)回复于 2005-08-03 14:11:33 得分 0
各位有这么复杂吗?
直接在表单form的后面加上action=mailto:要发送的邮箱帐号就OK了,,但这种一般没有用,因为现在客户机器设置outlook的不多哦...
还是试试用asp的在线提交吧,也挺简单的..Top
15 楼lj1979(Drizzt)回复于 2005-08-03 19:44:21 得分 0
<FORM id=form1 name=form1 action=mailto:要发送的邮箱帐号 method=POST>的方式对于网页设计人员来说是简单了,可对于一些仍不能熟练掌握上网技巧的人来说却显得不够“傻瓜”,我们设计网页就是要让界面尽可能的友好。Top
16 楼lj1979(Drizzt)回复于 2005-08-05 06:16:39 得分 0
谢谢roseandwort(常春藤) ,虽然你提供的客户页和提交页的在提交内容上有些不符,但我基本了解如何将表单内容提交到邮箱了,谢谢!Top
17 楼ljlyy(亮亮)回复于 2005-08-05 13:02:21 得分 0
学习中!Top
18 楼jackycxg(黑白灰)回复于 2005-08-05 13:32:16 得分 0
mark..Top




