首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > 邮件与程序开发 > Asp开发WAP简易邮件系统实例 > 正文

Asp开发WAP简易邮件系统实例

出处:IT168 作者:懒羊 时间:2007-6-14 0:46:25

随着手机用户的不断增加,WAP站点如雨后春笋迅速的滋长开来,手机邮箱也不断的出现在人的眼前,笔者也曾经开发了一套手机邮箱的系统,但由于时间仓促再加上后来一直忙于工作事情,系统功能也就再未加强,今日有幸借助于IT168原创网公开出来,与大家共同分享,希望大家可以借题发挥,加强系统功能,能够更好的应用于实际。

  测试软件:Opera M3gate

  测试机型:Eg730+ Nokia 6681 Moto V3i

  邮件组件:W3 Jmail 4.4

  一、WML结构介绍

  首先我们先对WML的结构作个简单的介绍,以便于大家更好的浏览源码。

  〈?xml version="1.0"?〉

  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1xml"〉

  〈wml〉

  〈head〉

  〈access/〉

  〈meta..../〉

  〈/head〉

  〈card〉

  Some contents...

  〈/card〉

  〈wml〉

  我们根据以上结构举个最简单的例子:

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉

  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉

  〈?xml version="1.0"?〉

  〈!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1xml"〉

  〈wml〉

  〈card title="邮件系统"〉

  〈p〉

  WML开发邮件系统

  〈/p〉

  〈/card〉

  〈/wml〉

  将以上代码存为example.asp,直接通过M3gate查看,具体效如图一。

  

图一

  “邮件系统”这一段文字为UTF-8码,为了更好的适用于手机浏览,建议编码格式采用UTF-8,大家可以下载WAP编码转换器对中文进行转换。

  由于我们系统采用ASP语言开发,因此在以上代码段前面还需加上以下两段代码:

  〈% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %〉

  指定IIS以UTF-8的编码格式读取传递过来的串串(表单提交,地址栏传递等),如果需要以GB2312的格式读取,可以将65001换成936。

  〈%Response.ContentType = "text/vnd.wap.wml; charset=UTF-8"%〉

  指定页面输出格式为WML,并且编码为UTF-8

二、JMail组件功能介绍

  W3 Jmail是一个smtp组件,利用它可以发送邮件,支持html格式邮件。你可以访问主页:http://tech.dimac.net 下载这个组件。w3 Jmail 发送邮件速度快,功能丰富,并且是免费的。

  以下是本系统所要用到的相关函数及属性,如需更详细的资料可以查阅JMail的官方说明。

  1、JMAIL.POP3

  创建POP3对象

  Set pop3 = Server.CreateObject( "JMail.POP3" )

  Connect(Username, Password, Server, Port) :

  打开并连接POP3服务器,

  Username:邮箱用户名

  Password:邮箱密码

  Server:POP3服务器

  Port:服务器端口号,可选项,默认为110

  示例:mailbox.Connect "john", "qwerty", "mail.myDomain.com"

  Disconnect() :

  关闭连结

  示例:mailbox.Disconnect

  DeleteSingleMessage(MessageID) :

  从邮件服务器上删除由MessageID指定的邮件。

  Mailbox.DeleteSingleMessage 1

  Messages() : Pointer

  返回Message的集合

  set messages = mailbox.Messages

  2、JMAIL.MESSAGE

  建立Message对象:

  set Message=server.CreateObject("Jmail.message")

  Silent() : Boolean

  如果设置为true,JMail不会抛出例外错误. JMail.execute() 会根据操作结果返回true或false

  示例:Message.silent = true

  Charset() : String

  字符集,缺省为"US-ASCII"

  示例:Message.Charset = "US-ASCII"

  From() : String

  发件人

  示例:Message.From=”sn1985boy@sohu.com”

  Subject() : String

  发送主题

  示例:Message.Subject=”测试”

  Body() : String

  邮件主体部分

  示例:Message.Body=“恭喜发送成功!”

  MailServerUserName() : String

  用户名

  示例:Message.MailServerUserName=“*****”

  MailServerPassWord() : String

  密码

  示例:Message.MailServerPassWord=”********”

  MailDomain() : String

  邮件服务器的域名

  示例:Message.MailDomain=”www.sohu.com”

  Priority() : Byte

  紧急程度,默认为3,1为最快,5为最慢

  示例:Message.Priority=2

  Send(mailServer, enque) : Boolean

  发送邮件。邮件服务器是一个描述邮件服务器名称或地址的字符串,用户名和密码是可选项。当要发送认证邮件时使用格式为:用户名:密码@邮件服务器

  示例:

  Message.Send("myMailServer"), Message.Send("myUserName:mypassword@mymailserver.mydomain.com")

  Count() : Integer

  返回邮件数

  示例:i = mailbox.Count

  Item(Index) : Pointer

  返回一个Message对象

  示例:set msg = Messages.Item(0)

  Recipients() : Pointer

  返回收件人集合。

  示例:Set Recipients = msg.Recipients

  Attachments() : Pointer

  返回邮件的附件集合。

  示例:Set Attachments = msg.Attachments

  3、JMail.Recipients

  Count() : Integer

  返回集合中收件人的总数。

  示例:i = Recipients.Count

  Item(Index) : Pointer

  返回集合中的一个指定的收件人。

  示例:set re = Recipients.Item(0)

  4、JMail.Attachments

  Count():Integer

  返回集合中附件的总数。

  示例:i = Attachments.Count

 三、邮件系统介绍

  本邮件系统共包括登陆邮件、发送邮件、接收邮件、删除邮件、回复邮件五个功能,以下我们就对每个功能进行单独介绍,并附出源码,本教程所有图片为M3gate测试中的截图。

  1) 登陆邮件

  

图二

  从图二中我们可以看出,登陆页面包括一个表单,表单中含有两个文本框与一个发送按钮,那么在WML语言中是如何提交表单的呢?首先我们先看看wml语言中一些表单元素:1、input元素

  〈input name="user" title="label" type="type" value="value" default="default" format="specifier" emptyok="false|true" size="n" maxlength="n" tabindex="n"/〉,用来输入文本,除了name属性是必要的,其他可选。

  *name属性:指定了用来存储该输入文本的变量名字。

  *title属性:该输入框的名字,同样可被用来作为概要CARD页中的选项名。

  *type属性:默认值为text,如选择password,则输入的数据显示为*。

  *value属性:在语法和行为上等同于下面的default属性,

  *default属性:指定输入框的默认值,即name属性指定变量的默认值,当用户输入新值时,该值无效,如果该值不符合以下format属性的规定,则手机也忽略该默认值。

  *format 属性:用来格式化输入的数据,可用的标记如下,使用时可用“一位数字标记”和“*标记”的形式,前者代表N个标记型字符,如3X, 后者代表任意个(小于maxlength属性的值)标记型字符。

  标记   描述

  A     任何符号或者大写字母(不包括数字)

  a     任何符号或者小写字母(不包括数字)

  N     任何数字(不包括符号或者字母)

  X     任何符号、数字或者大写字母(不可改变为小写字母)

  x     任何符号、数字或者小写字母(不可改变为大写字母)

  M     任何符号、数字或者大写字母(可改变为小写字母)或者多个字符,默认为首字大写

  m     任何符号、数字或者小写字母(可改变为大写字母)或者多个字符,默认为首字小写

  *maxlength属性:指定了用户可输入的最大字符长度,最大限制为256个字符。

  *emptyok属性:表示用户可否不填输入框,默认为false,即要填。

  *size属性:输入框显示长度,目前未被支持。

  *tabindex属性:类似于在HTML表单中按TAB键后,焦点落在哪个选项上,该值决定了这个选择顺序,数字大的排在后面。目前未被支持。

  示例:

  〈input type="text" title="用户名" name="user" maxlength="50"/〉

  2、do元素

  Do是WML语言中最有有价值的元素之一,它给用户提供一种在当前Card上进行"动作"的通用方法。

  属性列表:

  *type属性:告诉浏览器动作的意图。

  WML总共声明了9个类型的动作,最常用的动作类型是"accept"和"option"。

  1、accept,接受、确认

  2、prev,返回上一个历史堆栈中的URL

  3、help,请求帮助

  4、reset,清除或者重置状态

  5、options,根据当前页面的功能设置选项。

  6、delete,删除选择条目

  7、unknow,相当于空白字串

  8、vnd.*。vnd.*及其它不同大小写组合[Vv][Nn][Dd].*。这种类型定义的都是vnd.cotype,用于激活供应商或用户浏览器自定义的某个特定功能,其中co为公司(company)名的缩写。

  9、X-*与X-*。扩展类型,目前WML中还没有使用。

  *label属性:设置按钮标题,显示在浏览器定义好的屏幕位置,不同浏览器地显示位置不同。如果不设置标题,按钮会按照浏览器的缺省格式显示,不同浏览器的缺省格式不同。

  * name属性:按钮名称,可以用Card级的动作覆盖template上的同名动作,重新赋予那些动作新的任务。

  *optional属性:来定义一个按钮是否显示,设置为True时会被浏览器忽略

  示例:

  〈do type="accept" label="发送" optional="false"〉

  {Content}

  〈/do〉

  3、go元素

  用来指示浏览器显示指定的URL,包括DECK的第一个CARD或者指定的CARD。语法如下:

  〈go href="url" sendreferer="false|true" method="get|post" accept-charset="charset"〉

  〈postfield name="name" value="value"/〉

  〈setvar name="name" value="value"/〉

  〈/go〉

  其中href属性为必选,其他为可选。

  *sendreferer属性:是否传递当前页的URL,默认值为false。

  *method属性:和HTML中的表单FORM的method属性一样,指定表单是以get的方式还是post的方式递交,默认的值为get,但如果未指定method但〈go〉〈/go〉间存在〈postfield〉,手机自动以post方式传递。

  *accept-charset 属性:可覆盖在HTTP头里指定的字符集,可以写多个字符集,如accept-charset="UTF-8,US-ASCII, ISO-8859-1"。

  〈postfield name="name" value="value"/〉可以看作是HTML表单FORM中的〈INPUT TYPE="HIDDEN" NAME="变量名" VALUE="值"〉,通过它可以向指定的URL传递以“变量名/值”形式的数据。name和value属性都是必选的。注意只有这里的变量是用来递交给CGI程序的。

  除了〈postfield〉,还可以在〈go〉和〈/go〉间加入一句或者多句〈setvar name="name" value="value"/〉,该语句的意思是,当触发某一事件时,给变量赋值。

  示例:

  〈go href="main.asp" method="post" accept-charset="utf-8"〉

  〈postfield name="user" value="$(user)"/〉

  〈postfield name="pwd" value="$(pwd)"/〉〈/go〉

  〈/do〉

  邮件登陆界面源码: Index.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 title="邮箱登陆"〉

  〈p align="center"〉

  Welcome To Sohu-WAP-Mail〈/p〉

  〈p〉

  用户名:

  〈input type="text" title="用户名" name="user" maxlength="30"/〉

  〈br/〉密  码:

  〈input type="password" title="密码" name="pwd" maxlength="30"/〉〈br/〉

  〈do type="accept" label="发送" optional="false"〉

  〈go href="main.asp" method="post" accept-charset="utf-8"〉

  〈postfield name="user" value="$(user)"/〉

  〈postfield name="pwd" value="$(pwd)"/〉〈/go〉

  〈/do〉

  〈/p〉

  〈/card〉

  〈/wml〉

  2) 邮件主页面

  邮件主页面主要功能为验证登陆页面传过来的用户名与密码是否正确,如果正确则显示相关的邮件操作链接(如图四),反之则提示密码错误要求重新输入(如图三)。由于某些移动设备不支持跳转,程序尽量避免使用跳转语句。

  

图三 (登陆失败) 图四(登陆成功)

  邮件主页面源代码: main.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="Sohu-PALM-MAIL平台"〉

  〈p〉

  〈%

  on error resume next

  user=request("user")

  pwd=request("pwd")

  Set pop3 = Server.CreateObject( "JMail.POP3" )

  pop3.connect user,pwd,"http://pop3.sohu.com"

  pop3.Disconnect

  if err.number〈〉0 then

  response.write("登陆错误,请检查用户名密码是否正确!〈br/〉")

  response.write("〈a href='index.asp'〉重新登陆〈/a〉〈/p〉〈/card〉〈/wml〉")

  response.End()

  end if

  response.write("欢迎你"&user&"@sohu.com〈br/〉")

  %〉

  〈a href="email_title.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉收件箱〈/a〉〈br/〉

  〈a href="send.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉发件箱〈/a〉〈br/〉

  〈a href="index.asp"〉重新登陆〈/a〉〈br/〉

  〈/p〉

  〈/card〉

  〈/wml〉

  注:

  〈a href="email_title.asp?user=〈%=user%〉&pwd=〈%=pwd%〉"〉收件箱〈/a〉

  由于某些移动设备并不支持session,为了更好的应用,故采用url参数传递,遗憾的是这样做安全性不高,为了提高安全性,建议对参数进行明文加密后再进行传递,在接收页面在做相对应的解密处理,当然如果你有什么更好的办法,还请发邮件指出,谢谢。

 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。

相关文章 热门文章
  • 邮件系统双雄PK: TurboMail vs Exchange
  • 利用Transporter Suite实现从第3方邮件系统迁移到Exchange 2007
  • TurboMail邮件系统双机热备方案
  • TurboMail免费打造企业级别邮件系统
  • 避免邮件系统更换 企业规划先到位
  • 为邮件系统实现短信提醒功能
  • 微软Hotmail邮件系统引入社交网站
  • 某国际机场的TurboMail邮件系统实施案例
  • TurboMail校园邮件系统解决方案
  • TurboMail邮件系统彩邮解决方案
  • 深层剖析企业为何和如何重新选型邮件系统
  • Coremail邮件系统为厦门大学重建信息化基础
  • 用C++ Builder实现电子邮件群发
  • 用Cdonts实现发送Email
  • Jmail的主要参数列表
  • ASP.NET 2.0发送电子邮件全面剖析之二
  • VC++ SMTP协议电子邮件传送剖析
  • 通过sina的smtp验证的Java发送邮件源代码
  • ASP.NET 2.0中发送电子邮件剖析之一
  • 在Asp.Net中使用SmtpMail发送邮件的方法
  • .NET环境下Email的技术介绍
  • ASP.NET 2.0发送电子邮件中存在的问题
  • 用ASP判断Email地址是否有效
  • IIS如何接收ServerXMLHTTP传过来的编码字符?
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号