随着手机用户的不断增加,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" %〉
|
将以上代码存为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) : |
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" &#118alue="&#118alue" default="default" format="specifier" emptyok="false|true" size="n" maxlength="n" tabindex="n"/〉,用来输入文本,除了name属性是必要的,其他可选。
当前位置:
