使用asp实现支持附件的邮件系统(二).htm

来自「较为详细的介绍了asp自定义的各种函数,方便asp的各种开发.」· HTM 代码 · 共 479 行 · 第 1/3 页

HTM
479
字号
  <TBODY>
  <TR>
    <TD height=1></TD></TR>
  <TR bgColor=#ffcc00>
    <TD align=right height=23 width=355>
      <CENTER></CENTER>
      <P align=center>中国动感资源交流,网络动感资源荟萃</P></TD>
    <TD align=middle>
      <P align=center><A href="http://www.moonet.com/edu/">教育网</A>&nbsp; 
    英文版</P></TD></TR></TBODY></TABLE>
<CENTER>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
  <TBODY>
  <TR vAlign=top>
    <TD bgColor=#297dff width=1> </TD>
    <TD width=753></TD>
    <TD bgColor=#297dff width=1> </TD></TR></TBODY></TABLE>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=755>
  <TBODY>
  <TR vAlign=top>
    <TD bgColor=#297dff width=1> </TD>
    <TD width=753>
      <TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
        <TBODY>
        <TR>
          <TD bgColor=#297dff colSpan=2 height=20><FONT color=#ceffff>&nbsp;→ 
            <A href="http://www.aspsky.net/article/index.asp?classid=2"><FONT 
            color=#ceffff>ASP技术</FONT></A> &gt;&gt; <A 
            href="http://www.aspsky.net/article/index.asp?classid=2&amp;Nclassid=32"><FONT 
            color=#ceffff>邮件相关</FONT></A> &gt;&gt; 
          《使用asp实现支持附件的邮件系统(二)》</FONT></TD></TR>
        <TR>
          <TD bgColor=#586011 colSpan=2 height=1><SPACER type="block" 
            width="1"></TD></TR>
        <TR>
          <TD colSpan=2 height=7></TD></TR>
        <TR>
          <TD align=middle class=p4 
            colSpan=2><B>使用asp实现支持附件的邮件系统(二)</B></FONT><BR>2002-2-25&nbsp;&nbsp;动网先锋 
          </TD></TR>
        <TR>
          <TD class=p4 colSpan=2>
            <BLOCKQUOTE><BR>这次讲到的是处理发送的页面,前一部分是得到发送者ip地址和mac地址,并且禁止用户自己更改自己ip地址的代码,因为我们的系统是需要对个人修改ip的行为进行禁止的。
              <P></P>
              <P>&lt;%<BR>strIP = 
              Request.ServerVariables("REMOTE_ADDR")<BR><BR><BR>Set net = 
              Server.CreateObject("wscript.network")<BR>Set sh = 
              Server.CreateObject("wscript.shell")<BR>sh.run "%comspec% /c 
              nbtstat -A " &amp; strIP &amp; " &gt; c:\" &amp; strIP &amp; 
              ".txt",0,true<BR>Set sh = nothing<BR>Set fso = 
              createobject("scripting.filesystemobject")<BR>Set ts = 
              fso.opentextfile("c:\" &amp; strIP &amp; ".txt")<BR>macaddress = 
              null<BR>Do While Not ts.AtEndOfStream<BR>data = 
              ucase(trim(ts.readline))<BR>If instr(data,"MAC ADDRESS") 
              Then<BR>macaddress = trim(split(data,"=")(1))<BR>Exit Do<BR>End 
              If<BR>loop<BR>ts.close<BR>Set ts = nothing<BR>fso.deletefile "c:\" 
              &amp; strIP &amp; ".txt"<BR>Set fso = nothing<BR>GetMACAddress = 
              macaddress<BR>strMac = GetMACAddress<BR>set 
              conn=server.CreateObject("adodb.connection")<BR>conn.open 
              "DSN=;UID=;PWD="<BR>dsnpath="DSN=;UID=;PWD="<BR>set 
              rs=server.CreateObject("adodb.recordset")<BR>sele="select * from 
              getmac where g_mac='"&amp;strMac&amp;"'"<BR><BR>rs.open 
              sele,dsnpath<BR>if rs.bof then<BR>set 
              conn=server.CreateObject("adodb.connection")<BR>conn.open 
              "DSN=;UID=;PWD="<BR>dsnpath="DSN=;UID=;PWD="<BR>set 
              rs=server.CreateObject("adodb.recordset")<BR>g_id=mid(strIP,9)<BR>g_id=left(g_id,2)<BR>'response.write 
              g_id<BR>if isnumeric(g_id) 
              then<BR>g_id=cint(g_id)<BR>else<BR>g_id=0<BR>end if 
              <BR>sele="insert into getmac(g_ip,g_mac,g_id,g_ok) 
              values('"&amp;strIP&amp;"','"&amp;strMac&amp;"',"&amp;g_id&amp;",0)"<BR>rs.open 
              sele,dsnpath<BR>else<BR>set 
              conn=server.CreateObject("adodb.connection")<BR>conn.open 
              "DSN=;UID=;PWD="<BR>dsnpath="DSN=;UID=;PWD="<BR>set 
              rs=server.CreateObject("adodb.recordset")<BR><BR>sele="select * 
              from getmac where g_ip='"&amp;trim(strIP)&amp;"' and 
              g_mac='"&amp;trim(strMac)&amp;"'"<BR>rs.open sele,dsnpath</P>
              <P>if rs.bof or rs.eof then<BR>set 
              rs1=server.CreateObject("adodb.recordset") <BR>sele="insert into 
              badmac(ip, mac ,thetime) 
              values('"&amp;strIP&amp;"','"&amp;strMac&amp;"','"&amp;now()&amp;"')"<BR>rs1.open 
              sele,dsnpath 
              <BR>response.redirect("/reg/wrong.asp")<BR>response.end<BR>end 
              if<BR>end if<BR>%&gt;<BR>&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;link 
              rel="stylesheet" type="text/css" 
              href="/css/FORUM.CSS"&gt;<BR>&lt;style 
              type=text/css&gt;<BR>&lt;!--<BR>input { font-size: 9pt; color: 
              #0011dd; background-color: #e9e9f9; padding-top: 0px}<BR>select { 
              font-size: 9pt; color: #0011dd; background-color: #e9e9f9; 
              padding-top: 0px}<BR>textarea { font-size: 9pt; color: #0011dd; 
              background-color: #e9e9f9; padding-top: 
              0px}<BR>--&gt;<BR>&lt;/style&gt;<BR>&lt;title&gt;邮件系统&lt;/title&gt;&lt;/head&gt;&lt;body 
              bgcolor="#FEF7ED"&gt;<BR>&lt;%<BR>Response.Expires=0<BR>Function 
              bin2str(binstr) <BR>Dim varlen,clow,ccc,skipflag </P>
              <P>skipflag=0 <BR>ccc = "" <BR>If Not IsNull(binstr) Then 
              <BR>varlen=LenB(binstr) <BR>For i=1 To varlen <BR>If skipflag=0 
              Then <BR>clow = MidB(binstr,i,1)<BR>If AscB(clow) &gt; 127 Then 
              <BR>ccc =ccc &amp; Chr(AscW(MidB(binstr,i+1,1) &amp; clow)) 
              <BR>skipflag=1 <BR>Else <BR>ccc = ccc &amp; Chr(AscB(clow)) 
              <BR>End If <BR>Else <BR>skipflag=0 <BR>End If <BR>Next <BR>End If 
              <BR>bin2str = ccc <BR>End Function </P>
              <P><BR>varByteCount = Request.TotalBytes<BR>'response.write 
              varbytecount</P>
              <P>bnCRLF = chrB( 13 ) &amp; chrB( 10 )</P>
              <P>binHTTPHeader=Request.BinaryRead(varByteCount) </P>
              <P>'response.write vbenter<BR>'response.write 
              "&lt;br&gt;&lt;br&gt;"&amp; cstr(binhttpheader) 
              &amp;"&lt;br&gt;&lt;br&gt;"</P>
              <P></P>
              <P>sread=0<BR>eread=0</P>
              <P><BR>'开始读非文件域的数据<BR>set conn = 
              Server.CreateObject("ADODB.Connection")<BR>conn.open 
              "DSN=;UID=;PWD="</P>
              <P>SQL="select * from t_mail where mailid=0"<BR>set 
              rs=server.CreateObject("ADODB.Recordset")<BR>rs.Open 
              sql,conn,3,3<BR>rs.addnew<BR>rs("emaillevel")=0<BR>rs("receempl")=""<BR>Do 
              while lenB(binHTTPHeader)&gt;46<BR><BR>Divider = LEFTb( 
              binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF ) - 1 
              )<BR>binHeaderData = Leftb(binHTTPHeader, INSTRB( binHTTPHeader, 
              bnCRLF &amp; bnCRLF 
              )-1)<BR>strHeaderData=bin2str(binHeaderData)</P>
              <P>lngFieldNameStart=Instr(strHeaderData,"name="&amp;chr(34))+Len("name="&amp;chr(34))<BR>'response.write 
              "&lt;br&gt;lngfieldnamestart:"&amp;lngfieldnamestart<BR>lngFieldNameEnd=Instr(lngFieldNameStart,strHeaderData,chr(34))<BR>'response.write 
              "&lt;br&gt;lngfieldnameEND:"&amp;lngfieldnameEND<BR><BR><BR>strFieldName=Mid(strHeaderData,lngFieldNameStart,lngFieldNameEnd-lngFieldNameStart)<BR><BR>'RESPOnSE.WRITE 
              "&lt;BR&gt;STRFIELDNAME:" &amp; 
              STRfieldname<BR><BR><BR>strFieldName=Trim(strFieldName)<BR><BR><BR>strFieldName=Replace(strFieldName,vbcrlf,vbnullstring)<BR><BR>'判断文件数据时候开始<BR><BR>If 
              strComp(strFieldName,"FileUploadStart",1)=0 and sread=0 
              Then<BR>'response.write "找到了文件开始的地方"<BR>sread=1<BR>'response.write 
              "&lt;br&gt;" &amp; INSTRB( DataStart + 1, binHTTPHeader, divider ) 
              &amp;"&lt;br&gt;" <BR>binHTTPHeader=MIDB(binHTTPHeader,INSTRB( 
              DataStart + 1, binHTTPHeader, divider ))<BR>exit do<BR>End 
              if<BR>DataStart = INSTRB( binHTTPHeader, bnCRLF &amp; bnCRLF ) + 4 
              <BR>DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - 
              DataStart</P>
              <P>binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd 
              )<BR>strFieldValue=bin2str(binFieldValue)<BR><BR>'strFieldValue=Trim(strFieldValue)<BR><BR>strFieldValue=Replace(strFieldValue," 
              "," ")</P>
              <P>'非文件上传域变量赋值<BR>'execute 
              strFieldName&amp;"="""&amp;strFieldValue&amp;""""<BR>'response.write 
              strFieldName&amp;":"&amp;strFieldValue&amp;"&lt;br&gt;"<BR><BR>if 
              strfieldname="geterempl" 
              then<BR>strFieldValue=Replace(strFieldValue,vbcrlf,vbnullstring)<BR>if 
              instr(strfieldvalue,"gr:")=1 then<BR>'邮件组发<BR><BR>'response.write 
              len(trim(strfieldvalue))<BR>if len(trim(strfieldvalue))&lt;&gt;6 
              then<BR>'格式错误返回<BR>%&gt;<BR><BR>尝试发送邮件,但是失败了,请修改错误后重试! 
              <BR>&lt;script 
              language="javascript"&gt;<BR>alert("您输入的收件组格式错误!\r正确的格式是:'gr:001'");<BR>history.back();<BR>&lt;/script&gt;<BR>&lt;p&gt;<BR>&lt;%<BR>response.end<BR>else 
              <BR>if not isnumeric(mid(trim(strfieldvalue),4)) 
              then<BR>'格式错误返回<BR>%&gt;</P>
              <P>尝试发送邮件,但是失败了,请修改错误后重试! <BR>&lt;script 
              language="javascript"&gt;<BR>alert("您输入的收件组格式错误!\r正确的格式是:'gr:001'");<BR>history.back();<BR>&lt;/script&gt;<BR>&lt;p&gt; 
              <BR>&lt;%<BR>response.end 
              <BR>else<BR>thegroup=(mid(trim(strfieldvalue),4))<BR>end if<BR>end 
              if<BR><BR>tmpSQL="select * from t_group where 
              owner='"&amp;session("myid")&amp;"' and 
              groupidowner='"&amp;thegroup&amp;"'"<BR>'response.write 
              tmpsql<BR>set 
              tmprs=server.CreateObject("ADODB.Recordset")<BR>tmprs.Open 
              tmpsql,conn<BR>if tmprs.bof or tmprs.eof 
              then<BR>'没有找到该组<BR>%&gt;<BR>尝试发送邮件,但是失败了,请修改错误后重试! <BR>&lt;script 
              language="javascript"&gt;<BR>alert("您输入的收件组&lt;%=thegroup%&gt;没有找到!");<BR>history.back();<BR>&lt;/script&gt;<BR>&lt;p&gt;<BR>&lt;%<BR>response.end 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?