欢迎光临
我们一直在努力

用ASP实现支持附件的EMail系统(2)-ASP教程,邮件相关

建站超值云服务器,限时71元/月

不过这仅仅只是得到了发送者的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 “

“& cstr(binhttpheader) &”

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 “
lngfieldnamestart:”&lngfieldnamestart
lngfieldnameend=instr(lngfieldnamestart,strheaderdata,chr(34))
response.write “
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 “
” & instrb( datastart + 1, binhttpheader, divider ) &”

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&”

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
格式错误返回
%>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用ASP实现支持附件的EMail系统(2)-ASP教程,邮件相关
分享到: 更多 (0)