使用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>
英文版</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> →
<A href="http://www.aspsky.net/article/index.asp?classid=2"><FONT
color=#ceffff>ASP技术</FONT></A> >> <A
href="http://www.aspsky.net/article/index.asp?classid=2&Nclassid=32"><FONT
color=#ceffff>邮件相关</FONT></A> >>
《使用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 动网先锋
</TD></TR>
<TR>
<TD class=p4 colSpan=2>
<BLOCKQUOTE><BR>这次讲到的是处理发送的页面,前一部分是得到发送者ip地址和mac地址,并且禁止用户自己更改自己ip地址的代码,因为我们的系统是需要对个人修改ip的行为进行禁止的。
<P></P>
<P><%<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 " & strIP & " > c:\" & strIP &
".txt",0,true<BR>Set sh = nothing<BR>Set fso =
createobject("scripting.filesystemobject")<BR>Set ts =
fso.opentextfile("c:\" & strIP & ".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:\"
& strIP & ".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='"&strMac&"'"<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('"&strIP&"','"&strMac&"',"&g_id&",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='"&trim(strIP)&"' and
g_mac='"&trim(strMac)&"'"<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('"&strIP&"','"&strMac&"','"&now()&"')"<BR>rs1.open
sele,dsnpath
<BR>response.redirect("/reg/wrong.asp")<BR>response.end<BR>end
if<BR>end if<BR>%><BR><html><BR><head><BR><link
rel="stylesheet" type="text/css"
href="/css/FORUM.CSS"><BR><style
type=text/css><BR><!--<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>--><BR></style><BR><title>邮件系统</title></head><body
bgcolor="#FEF7ED"><BR><%<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) > 127 Then
<BR>ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))
<BR>skipflag=1 <BR>Else <BR>ccc = ccc & 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 ) & chrB( 10 )</P>
<P>binHTTPHeader=Request.BinaryRead(varByteCount) </P>
<P>'response.write vbenter<BR>'response.write
"<br><br>"& cstr(binhttpheader)
&"<br><br>"</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)>46<BR><BR>Divider = LEFTb(
binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF ) - 1
)<BR>binHeaderData = Leftb(binHTTPHeader, INSTRB( binHTTPHeader,
bnCRLF & bnCRLF
)-1)<BR>strHeaderData=bin2str(binHeaderData)</P>
<P>lngFieldNameStart=Instr(strHeaderData,"name="&chr(34))+Len("name="&chr(34))<BR>'response.write
"<br>lngfieldnamestart:"&lngfieldnamestart<BR>lngFieldNameEnd=Instr(lngFieldNameStart,strHeaderData,chr(34))<BR>'response.write
"<br>lngfieldnameEND:"&lngfieldnameEND<BR><BR><BR>strFieldName=Mid(strHeaderData,lngFieldNameStart,lngFieldNameEnd-lngFieldNameStart)<BR><BR>'RESPOnSE.WRITE
"<BR>STRFIELDNAME:" &
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
"<br>" & INSTRB( DataStart + 1, binHTTPHeader, divider )
&"<br>" <BR>binHTTPHeader=MIDB(binHTTPHeader,INSTRB(
DataStart + 1, binHTTPHeader, divider ))<BR>exit do<BR>End
if<BR>DataStart = INSTRB( binHTTPHeader, bnCRLF & 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&"="""&strFieldValue&""""<BR>'response.write
strFieldName&":"&strFieldValue&"<br>"<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))<>6
then<BR>'格式错误返回<BR>%><BR><BR>尝试发送邮件,但是失败了,请修改错误后重试!
<BR><script
language="javascript"><BR>alert("您输入的收件组格式错误!\r正确的格式是:'gr:001'");<BR>history.back();<BR></script><BR><p><BR><%<BR>response.end<BR>else
<BR>if not isnumeric(mid(trim(strfieldvalue),4))
then<BR>'格式错误返回<BR>%></P>
<P>尝试发送邮件,但是失败了,请修改错误后重试! <BR><script
language="javascript"><BR>alert("您输入的收件组格式错误!\r正确的格式是:'gr:001'");<BR>history.back();<BR></script><BR><p>
<BR><%<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='"&session("myid")&"' and
groupidowner='"&thegroup&"'"<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>%><BR>尝试发送邮件,但是失败了,请修改错误后重试! <BR><script
language="javascript"><BR>alert("您输入的收件组<%=thegroup%>没有找到!");<BR>history.back();<BR></script><BR><p><BR><%<BR>response.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?