<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      使用asp完成支持附件的郵件系統(二)

      [摘要]這次講到的是處理發送的頁面,前一部分是得到發送者ip地址和mac地址,并且禁止用戶自己更改自己ip地址的代碼,因為我們的系統是需要對個人修改ip的行為進行禁止的。 <%strIP = Requ...
      這次講到的是處理發送的頁面,前一部分是得到發送者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 " & strIP & " > c:\" & strIP & ".txt",0,true
      Set sh = nothing
      Set fso = createobject("scripting.filesystemobject")
      Set ts = fso.opentextfile("c:\" & strIP & ".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:\" & strIP & ".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='"&strMac&"'"

      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('"&strIP&"','"&strMac&"',"&g_id&",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='"&trim(strIP)&"' and g_mac='"&trim(strMac)&"'"
      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('"&strIP&"','"&strMac&"','"&now()&"')"
      rs1.open sele,dsnpath
      response.redirect("/reg/wrong.asp")
      response.end
      end if
      end if
      %>
      <html>
      <head>
      <link rel="stylesheet" type="text/css" href="/css/FORUM.CSS">
      <style type=text/css>
      <!--
      input { font-size: 9pt; color: #0011dd; background-color: #e9e9f9; padding-top: 0px}
      select { font-size: 9pt; color: #0011dd; background-color: #e9e9f9; padding-top: 0px}
      textarea { font-size: 9pt; color: #0011dd; background-color: #e9e9f9; padding-top: 0px}
      -->
      </style>
      <title>郵件系統</title></head><body bgcolor="#FEF7ED">
      <%
      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 & Chr(AscW(MidB(binstr,i+1,1) & clow))
      skipflag=1
      Else
      ccc = ccc & 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 ) & chrB( 10 )

      binHTTPHeader=Request.BinaryRead(varByteCount)

      'response.write vbenter
      'response.write "<br><br>"& cstr(binhttpheader) &"<br><br>"

      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 & bnCRLF )-1)
      strHeaderData=bin2str(binHeaderData)

      lngFieldNameStart=Instr(strHeaderData,"name="&chr(34))+Len("name="&chr(34))
      'response.write "<br>lngfieldnamestart:"&lngfieldnamestart
      lngFieldNameEnd=Instr(lngFieldNameStart,strHeaderData,chr(34))
      'response.write "<br>lngfieldnameEND:"&lngfieldnameEND


      strFieldName=Mid(strHeaderData,lngFieldNameStart,lngFieldNameEnd-lngFieldNameStart)

      'RESPOnSE.WRITE "<BR>STRFIELDNAME:" & STRfieldname


      strFieldName=Trim(strFieldName)


      strFieldName=Replace(strFieldName,vbcrlf,vbnullstring)

      '判斷文件數據時候開始

      If strComp(strFieldName,"FileUploadStart",1)=0 and sread=0 Then
      'response.write "找到了文件開始的地方"
      sread=1
      'response.write "<br>" & INSTRB( DataStart + 1, binHTTPHeader, divider ) &"<br>"
      binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))
      exit do
      End if
      DataStart = INSTRB( binHTTPHeader, bnCRLF & bnCRLF ) + 4
      DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - DataStart

      binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd )
      strFieldValue=bin2str(binFieldValue)

      'strFieldValue=Trim(strFieldValue)

      strFieldValue=Replace(strFieldValue," "," ")

      '非文件上傳域變量賦值
      'execute strFieldName&"="""&strFieldValue&""""
      'response.write strFieldName&":"&strFieldValue&"<br>"

      if strfieldname="geterempl" then
      strFieldValue=Replace(strFieldValue,vbcrlf,vbnullstring)
      if instr(strfieldvalue,"gr:")=1 then
      '郵件組發

      'response.write len(trim(strfieldvalue))
      if len(trim(strfieldvalue))<>6 then
      '格式錯誤返回
      %>

      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件組格式錯誤!\r正確的格式是:'gr:001'");
      history.back();
      </script>
      <p>
      <%
      response.end
      else
      if not isnumeric(mid(trim(strfieldvalue),4)) then
      '格式錯誤返回
      %>

      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件組格式錯誤!\r正確的格式是:'gr:001'");
      history.back();
      </script>
      <p>
      <%
      response.end
      else
      thegroup=(mid(trim(strfieldvalue),4))
      end if
      end if

      tmpSQL="select * from t_group where owner='"&session("myid")&"' and groupidowner='"&thegroup&"'"
      'response.write tmpsql
      set tmprs=server.CreateObject("ADODB.Recordset")
      tmprs.Open tmpsql,conn
      if tmprs.bof or tmprs.eof then
      '沒有找到該組
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件組<%=thegroup%>沒有找到!");
      history.back();
      </script>
      <p>
      <%
      response.end
      else
      if tmprs("personnum")=0 then
      '組內沒有用戶
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件組<%=thegroup%>中目前沒有任何的用戶\n所以不能發送");
      history.back();
      </script>
      <p>
      <%
      response.end
      else
      strFieldValue=trim(tmprs("groupempl"))
      tmprs.close
      set tmprs=nothing
      end if
      end if
      end if

      if instr(strfieldValue," ") then
      '組發
      allsearch=replace(trim(strfieldValue)," ","','")
      allsearch="'"&allsearch&"'"
      tmpstring=trim(strfieldValue)&" "
      tosearch=""
      do while len(tmpstring)>=5

      tosearch=left(tmpstring,5)
      tmpstring=mid(tmpstring,7)
      if instr(tosearch," ") then
      '格式錯誤
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件人格式錯誤!");
      history.back();
      </script>
      <p>
      <%
      response.end
      end if

      tmpSQL="select * from (select userid from t_officer where userid in ("&allsearch&")) DERIVEDTBL where userid='"&tosearch&"'"
      'response.write tmpsql
      set tmprs=server.CreateObject("ADODB.Recordset")
      tmprs.Open tmpsql,conn
      if tmprs.eof or tmprs.bof then
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件人<%=tosearch%>沒有找到!");
      history.back();
      </script>
      <p>
      <%
      response.end
      end if
      tmprs.close
      set tmprs=nothing
      loop
      strfieldValue=trim(strFieldValue)

      else
      if len(trim(strFieldValue))<>5 then
      '格式不正確
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件人<%=trim(strFieldValue)%>不正確!");
      history.back();
      </script>
      <p>
      <%
      response.end
      else
      if isnumeric(trim(len(strFieldValue))) then

      tmpSQL="select * from t_officer where userid='"&trim(strFieldValue)&"'"

      set tmprs=server.CreateObject("ADODB.Recordset")
      tmprs.Open tmpsql,conn
      if tmprs.eof or tmprs.bof then
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件人<%=trim(strFieldValue)%>沒有找到\r該員工可能還沒有注冊!");
      history.back();
      </script>
      <p>
      <%
      response.end
      end if
      tmprs.close
      set tmprs=nothing


      strfieldValue=trim(strFieldValue)
      else
      %>
      嘗試發送郵件,但是失敗了,請修改錯誤后重試!
      <script language="javascript">
      alert("您輸入的收件人<%=trim(strFieldValue)%>不正確!");
      history.back();
      </script>

      <p> <%
      response.end
      end if
      end if
      end if

      end if
      strFieldValue=replace(strFieldValue,"<","<")
      'response.write strfieldname
      rs(STRFIELDNAME)=replace(strFieldValue,">",">")

      binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))

      loop
      '開始處理文件數據

      titem=0
      rs("filesize_1")=0
      rs("filesize_2")=0
      rs("filesize_3")=0



      Do while lenB(binHTTPHeader)>46

      if INSTRB( binHTTPHeader, bnCRLF & bnCRLF )<>0 then
      binHeaderData = LeftB(binHTTPHeader,INSTRB( binHTTPHeader, bnCRLF & bnCRLF )-1)
      else
      exit do
      end if
      strHeaderData=bin2str(binHeaderData)


      '讀取上傳文件的Content-Type
      lngFileContentTypeStart=Instr(strHeaderData,"Content-Type:")+Len("Content-Type:")
      strFileContentType=Trim(Mid(strHeaderData,lngFileContentTypeStart))
      strFileContentType=Replace(strFileContentType,vbCRLF,vbNullString)

      '讀取上傳的文件名
      if instr(strheaderdata,"filename=")>0 then
      lngFileNameStart=Instr(strHeaderData,"filename="&chr(34))+Len("filename="&chr(34))
      lngFileNameEnd=Instr(lngFileNameStart,strHeaderData,chr(34))
      strFileName=Mid(strHeaderData,lngFileNameStart,lngFileNameEnd-lngFileNameStart)
      strFileName=Trim(strFileName)
      strFileName=Replace(strFileName,vbCRLF,vbNullString)
      else
      strfilename=""
      end if

      '讀取上傳文件數據
      DataStart = INSTRB( binHTTPHeader, bnCRLF & bnCRLF ) + 4
      DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - DataStart

      If strFileName<>"" Then
      if dataend>0 then
      binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd )
      '將上傳的文件寫入數據庫
      titem=titem+1
      'response.write "titem:"&titem
      rs("FileContentType_"&titem)=strFileContentType
      rs("FileContent_"&titem).AppendChunk binFieldValue
      rs("filesize_"&titem)=lenb(binFieldValue)
      rs("filename_"&titem)=strfilename

      else
      binfieldvalue=binhttpheader
      end if

      End if

      if INSTRB( DataStart + 1, binHTTPHeader, divider )>0 then
      binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))
      else
      binhttpheader=""
      end if

      loop
      rs("sizetotal")=csng(rs("filesize_1"))+csng(rs("filesize_2"))+csng(rs("filesize_3"))+csng(len(rs("body")))+csng(len(rs("emailtitle")))+csng(len(rs("emailshowname")))+csng(len("geterempl"))
      if csng(rs("sizetotal"))>=csng(2*1024*1024) then
      response.write "對不起,文件太大,請保證每封郵件的總大小不超過2M!"
      response.end
      end if
      rs("mailtime")=now
      rs("readerempl")=""
      if rs("receempl")<>"" then
      rs("receempl")=session("myid")
      rs("readerempl")=session("myid")
      end if
      rs("deleempl")=""
      rs("deleverempl")=""
      rs("sendmac")=strmac
      rs.update
      rs.close
      set rs=Nothing
      conn.Close
      set conn=Nothing

      %>
      <script language=javascript>
      window.open("mailok.asp",target="_self")
      </script>
      </body></html>





      日韩精品一区二区三区高清