• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    使用asp實現支持附件的郵件系統(二)

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網 這次講到的是處理發送的頁面,前一部分是得到發送者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>


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>