使用asp实现支持附件的邮件系统(二)
这次讲到的是处理发送的页面,前一部分是得到发送者ip地址和mac地址,并且禁止用户自己更改自己ip地址的代码,因为我们的系统是需要对个人修改ip的行为进行禁止的。
<% strIP = Request.ServerVariables("REMOTE_ADDR") Set net = Server.CreateObject("wscript.network") Set sh = Server.CreateObject("wscript.shell") sh.run "%comspec% /c nbtstat -A " %26amp; strIP %26amp; " > c:" %26amp; strIP %26amp; ".txt",0,true Set sh = nothing Set fso = createobject("scripting.filesystemobject") Set ts = fso.opentextfile("c:" %26amp; strIP %26amp; ".txt") macaddress = null Do While Not ts.AtEndOfStream data = ucase(trim(ts.readline)) If instr(data,"MAC ADDRESS") Then macaddress = trim(split(data,"=")(1)) Exit Do End If loop ts.close Set ts = nothing fso.deletefile "c:" %26amp; strIP %26amp; ".txt" Set fso = nothing GetMACAddress = macaddress strMac = GetMACAddress set conn=server.CreateObject("adodb.connection") conn.open "DSN=;UID=;PWD=" dsnpath="DSN=;UID=;PWD=" set rs=server.CreateObject("adodb.recordset") sele="select * from getmac where g_mac='"%26amp;strMac%26amp;"'" rs.open sele,dsnpath if rs.bof then set conn=server.CreateObject("adodb.connection") conn.open "DSN=;UID=;PWD=" dsnpath="DSN=;UID=;PWD=" set rs=server.CreateObject("adodb.recordset") g_id=mid(strIP,9) g_id=left(g_id,2) 'response.write g_id if isnumeric(g_id) then g_id=cint(g_id) else g_id=0 end if sele="insert into getmac(g_ip,g_mac,g_id,g_ok) values('"%26amp;strIP%26amp;"','"%26amp;strMac%26amp;"',"%26amp;g_id%26amp;",0)" rs.open sele,dsnpath else set conn=server.CreateObject("adodb.connection") conn.open "DSN=;UID=;PWD=" dsnpath="DSN=;UID=;PWD=" set rs=server.CreateObject("adodb.recordset") sele="select * from getmac where g_ip='"%26amp;trim(strIP)%26amp;"' and g_mac='"%26amp;trim(strMac)%26amp;"'" rs.open sele,dsnpath if rs.bof or rs.eof then set rs1=server.CreateObject("adodb.recordset") sele="insert into badmac(ip, mac ,thetime) values('"%26amp;strIP%26amp;"','"%26amp;strMac%26amp;"','"%26amp;now()%26amp;"')" rs1.open sele,dsnpath response.redirect("/reg/wrong.asp") response.end end if end if %> <% Response.Expires=0 Function bin2str(binstr) Dim varlen,clow,ccc,skipflag skipflag=0 ccc = "" If Not IsNull(binstr) Then varlen=LenB(binstr) For i=1 To varlen If skipflag=0 Then clow = MidB(binstr,i,1) If AscB(clow) > 127 Then ccc =ccc %26amp; Chr(AscW(MidB(binstr,i+1,1) %26amp; clow)) skipflag=1 Else ccc = ccc %26amp; Chr(AscB(clow)) End If Else skipflag=0 End If Next End If bin2str = ccc End Function varByteCount = Request.TotalBytes 'response.write varbytecount bnCRLF = chrB( 13 ) %26amp; chrB( 10 ) binHTTPHeader=Request.BinaryRead(varByteCount) 'response.write vbenter 'response.write " "%26amp; cstr(binhttpheader) %26amp;" " sread=0 eread=0 '开始读非文件域的数据 set conn = Server.CreateObject("ADODB.Connection") conn.open "DSN=;UID=;PWD=" SQL="select * from t_mail where mailid=0" set rs=server.CreateObject("ADODB.Recordset") rs.Open sql,conn,3,3 rs.addnew rs("emaillevel")=0 rs("receempl")="" Do while lenB(binHTTPHeader)>46 Divider = LEFTb( binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF ) - 1 ) binHeaderData = Leftb(binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF %26amp; bnCRLF )-1) strHeaderData=bin2str(binHeaderData) lngFieldNameStart=Instr(strHeaderData,"name="%26amp;chr(34))+Len("name="%26amp;chr(34)) 'response.write " lngfieldnamestart:"%26amp;lngfieldnamestart lngFieldNameEnd=Instr(lngFieldNameStart,strHeaderData,chr(34)) 'response.write " lngfieldnameEND:"%26amp;lngfieldnameEND strFieldName=Mid(strHeaderData,lngFieldNameStart,lngFieldNameEnd-lngFieldNameStart) 上一篇:使用asp实现支持附件的邮件系统(三) 下一篇:发布内网Merak Mail Server的SMTP%26POP3服务 更多相关文章
|
推荐文章
精彩文章
|