日期:2010-11-18  浏览次数:21320 次

  下一篇:ASP开发WAP简易邮件系统实例(续)

  随着手机用户的不断增加,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查看,具体效如图一。

ASP开发WAP简易邮件系统实例
图一

  “邮件系统”这一段文字为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

  返回一个Messag