日期:2010-11-18 浏览次数:21320 次
随着手机用户的不断增加,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
返回一个Messag