ASP開發WAP簡易郵件系統執行個體(續)

來源:互聯網
上載者:User

  上一篇:ASP開發WAP簡易郵件系統執行個體

  3) 發送郵件


圖五

  發送郵件功能的實現主要採用了Jmail.Message對象完成,關於所要用到的對象相關知識在前面已經敘述過了,大家可以將上面的功能介紹與源碼對照起來閱讀,這樣有助於理解整個郵件發送過程,當然如果將WM元素換為HTMLF元素,這樣一個簡單的WEB郵件發送功能也就完成了,send.asp為郵件發送頁面 sendok.asp為郵件發送處理頁面

  Send.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="寄件匣"〉
  〈p〉
  〈%
  user=request("user")
  pwd=request("pwd")
  %〉
  收件者:
  〈input type="text" title="收件者" name="tomail" size="12" maxlength="50"/〉〈br/〉
  標題:
  〈input type="text" title="標題" name="subject" size="12" maxlength="50"/〉
  〈br/〉內容:
  〈input type="text" title="內容" name="body" size="12" maxlength="250"/〉〈br/〉
  〈do type="accept" label="發送" optional="false"〉
  〈go href="sendok.asp?user=〈%=user%〉&pwd=〈%=pwd%〉" method="post" accept-charset="utf-8"〉
  〈postfield name="from" value="$(from)"/〉
  〈postfield name="tomail" value="$(tomail)"/〉
  〈postfield name="subject" value="$(subject)"/〉
  〈postfield name="body" value="$(body)"/〉〈/go〉
  〈/do〉
  〈/p〉
  〈p〉
  〈a href="main.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉返回郵箱〈/a〉〈/p〉
  〈/card〉
  〈/wml〉

  Sendok.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="發送郵件"〉
  〈p〉
  〈%
  user=request("user")
  pwd=request("pwd")
  tomail=request("tomail")
  'from=request.form("from")
  subject=request.form("subject")
  body=request.form("body")
  servermail=user+"@sohu.com"
  dim JMail
  set JMail=server.CreateObject("Jmail.message")
  JMail.Silent=true
  JMail.Charset = "gb2312"
  JMail.from =""&ServerMail&"" '為寄件者
  JMail.AddRecipient tomail
  JMail.Subject =""&subject&""
  jmail.Body=""&body&"----------你當前使用的眾贏掌中郵系統,詳情請訪問:http://www.palmmail.cn郵通天下 一觸即發!----------"
  JMail.MailServerUserName =user
  JMail.MailServerPassWord = pwd
  JMail.MailDomain = "www.sohu.com"
  JMail.Priority=2
  sendok=JMail.send("smtp.sohu.com")
  Set JMail=nothing
  if sendok then
  response.write "發送成功!〈a href='main.asp?user="&user&"&pwd="&pwd&"'〉返回郵箱〈/a〉"
  else
  response.write "發送失敗!〈a href='send.asp?user="&user&"&pwd="&pwd&"'〉返回郵箱〈/a〉"
  end if
  %〉
  〈/p〉
  〈/card〉
  〈/wml〉

  4) 內送郵件


圖六

  內送郵件主要由兩部分組成,第一部分為郵件清單,根據所獲得的郵件總數(pop3.count)進行分頁顯示。第二部分為每封信的具體內容,其中包括對附件進行檢測功能,由於手機瀏覽時並不能開啟附件,因此本系統只對附件作了檢測並提醒使用者郵件是否包含郵件功能。

  源碼如下:

  郵件清單:email_list.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="收件匣"〉
  〈p〉
  〈%
  user=request("user")
  pwd=request("pwd")
  dim perpage_num,curpage,totalpage
  perpage_num=3 '設每頁顯示條數
  if request("page")="" then
  curpage=1 '當前頁
  else
  curpage=int(request("page"))
  end if
  Set pop3 = Server.CreateObject( "JMail.POP3" )
  pop3.connect user,pwd,"http://pop3.sohu.com"
  ' POP3的串連使用者名稱,密碼,POP3地址
  if pop3.count mod perpage_num〈〉0 then
  totalpage=int(pop3.count / perpage_num)+1
  else
  totalpage=int(pop3.count / perpage_num)
  end if
  Response.Write( "你現在有" & pop3.count & " 封郵件。分"&totalpage&"頁,當前"&curpage&"頁〈br/〉---------------------〈br/〉" )
  if pop3.count 〉 0 then '如果沒有郵件則顯示無郵件
  if pop3.count〉=perpage_num*curpage then
  for i=(curpage-1)*perpage_num to curpage*perpage_num-1%〉
  〈a href="email_info.asp?id=〈%=i+1%〉&user=〈%=user%〉&pwd=〈%=pwd%〉&page=〈%=curpage%〉"〉〈%=pop3.messages.item(i+1).Subject%〉--〈%=pop3.messages.item(i+1).date%〉〈/a〉〈br/〉
  〈%next
  %〉
  〈%if curpage〉1 then%〉
  〈a href="email_list.asp?page=〈%=curpage-1%〉&user=〈%=user%〉&pwd=〈%=pwd%〉"〉上一頁〈/a〉
    〈%end if%〉
  〈%if int(curpage)〈int(totalpage) then%〉
  〈a href="email_list.asp?page=〈%=curpage+1%〉&user=〈%=user%〉&pwd=〈%=pwd%〉"〉下一頁〈/a〉
  〈%end if%〉
  〈%
  else
  for i=(curpage-1)*perpage_num to pop3.count-1%〉
  〈a href="email_info.asp?id=〈%=i+1%〉&user=〈%=user%〉&pwd=〈%=pwd%〉&page=〈%=curpage%〉"〉〈%=pop3.messages.item(i+1).Subject%〉--〈%=pop3.messages.item(i+1).date%〉〈/a〉〈br/〉
  〈%next%〉
  〈%if curpage〉1 then%〉
  〈a href="email_list.asp?page=〈%=curpage-1%〉&user=〈%=user%〉&pwd=〈%=pwd%〉"〉上一頁〈/a〉
    〈%end if%〉
  〈%if int(curpage)〈int(totalpage) then%〉
  〈a href="email_list.asp?page=〈%=curpage+1%〉&user=〈%=user%〉&pwd=〈%=pwd%〉"〉下一頁〈/a〉
  〈%end if%〉
  〈%
  end if
  else
  response.write("暫無郵件!")
  end if
  pop3.Disconnect
  %〉
  〈/p〉
  〈p〉
  〈a href="main.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉返回郵箱〈/a〉
  〈/p〉
  〈/card〉
  〈/wml〉

  郵件詳細資料:email_info.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="查看郵件"〉
  〈p〉
  〈%
  user=request("user")
  pwd=request("pwd")
  id=request("id")
  page=request("page")
  Set pop3 = Server.CreateObject( "JMail.POP3" )
  ' POP3的串連使用者名稱,密碼,POP3地址
  pop3.connect user,pwd,"http://pop3.sohu.com"
  Set msg = pop3.Messages.item(id)
  ReTo = ""
  ReCC = ""
  Set Recipients = msg.Recipients
  separator = ", "
  For i = 0 To Recipients.Count - 1
  If i = Recipients.Count - 1 Then
  separator = ""
  End If
  Set re = Recipients.item(i)
  If re.ReType = 0 Then
  ReTo = ReTo & re.Name & re.EMail & separator
  else
  ReCC = ReTo & re.Name & re.EMail & separator
  End If
  Next
  body=msg.body
  body=replace(body,"〈","")
  body=replace(body,"〉","")
  Set Attachments = msg.Attachments
  %〉
  〈a href="email_title.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&page=〈%=page%〉"〉返回上一頁〈/a〉 〈a href="reply.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&mailto=〈%=msg.From%〉"〉回複〈/a〉 〈a href="email_del.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&id=〈%=id%〉"〉刪除〈/a〉
  〈/p〉
  〈p〉
  寄件者:〈%= msg.FromName %〉--〈%=msg.date%〉〈br/〉
  標題:〈%= msg.Subject %〉〈br/〉
  內容:〈%= body %〉〈br/〉
  〈%
  if Attachments.Count〉0 then
  response.Write("信件中包含附件,請通過網路查收!")
  end if
  pop3.Disconnect
  %〉
  〈/p〉
  〈p〉
  〈a href="email_list.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&page=〈%=page%〉"〉返回上一頁〈/a〉 〈a href="reply.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&mailto=〈%=msg.From%〉"〉回複〈/a〉 〈a href="email_del.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&id=〈%=id%〉"〉刪除〈/a〉
  〈/p〉
  〈/card〉
  〈/wml〉

  5) 刪除郵件

  本功能與郵件回複功能一樣,為郵件查看頁面的一個子功能,通過MessageID傳遞實現刪除郵件。

  源碼:email_del.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="刪除成功"〉
  〈p〉
  〈%
  user=request("user")
  pwd=request("pwd")
  id=request("id")
  Set pop3 = Server.CreateObject( "JMail.POP3" )
  ' POP3的串連使用者名稱,密碼,POP3地址
  pop3.connect user,pwd,"http://pop3.sohu.com"
  pop3.deletesinglemessage id
  pop3.Disconnect
  Set JMail=nothing
  response.write delok&"刪除成功!〈a href='email_list.asp?user="&user&"&pwd="&pwd&"'〉返回收件匣〈/a〉"

  %〉
  〈/p〉
  〈/card〉
  〈/wml〉

  6) 回複郵件

  回複郵件基本與發送郵件相同,只是將發送人由原來的手工輸入改成通過URL參數傳遞,當然也可以將郵件主體內容傳遞到回複郵件的主體中,但由於當今手機上網基本採用流量收費的方式,為了減少流量就省去了這些功能,具體代碼如下:

  Reply.asp

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉
  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉
  〈?xml version="1.0" encoding="utf-8"?〉
  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"〉
  〈wml〉
  〈card id="main" title="寄件匣"〉
  〈p〉
  〈%
  user=request("user")
  pwd=request("pwd")
  tomail=request("mailto")
  %〉
  收件者:
  〈%=tomail%〉〈br/〉
  標題:
  〈input type="text" title="標題" name="subject" size="8" maxlength="50"/〉
  〈br/〉內容:
  〈input type="text" title="內容" name="body" size="8" maxlength="250"/〉〈br/〉
  〈do type="accept" label="發送" optional="false"〉
  〈go href="sendok.asp?user=〈%=user%〉&pwd=〈%=pwd%〉&tomail=〈%=tomail%〉" method="post" accept-charset="utf-8"〉
  〈postfield name="subject" value="$(subject)"/〉
  〈postfield name="body" value="$(body)"/〉〈/go〉
  〈/do〉
  〈/p〉
  〈p〉
  〈a href="email_list.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉返回收件匣〈/a〉〈br/〉
  〈a href="main.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉返回郵箱〈/a〉〈/p〉
  〈/card〉
  〈/wml〉

  雖然這套系統可以實現郵件的發送、接收、回複、刪除等功能,但是很多方面都是非常欠缺的,比如內送郵件時不能夠顯示出未讀郵件,郵件不能夠按照發送郵件的先後順序排序等等,希望大家有興趣幫忙多多完善,有什麼好的想法好的建議多與我交流,歡迎來信sn1985boy@sohu.com。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.