网学网为需要其他类别的朋友们搜集整理了一种电子邮件收发系统的研究相关资料,希望对各位网友有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
3.1.1 连接POP3服务器 POP3通信与SMTP的差不多。与POP3服务器进行的客户端程序,设置Winsock连接的IP地址或域名,指定端口号(POP3的端口号为110)[10]。 1.创建连接 在POP3类建立一个Connect()函数。首先调用CSocket类的函数CSockt::Create()创建一个套接字,如果套接字创建成功,那么调用函数CSocket::Connect()向POP3服务器请求连接,并调用函数CPOP3::get_response()读取POP3服务器的响应消息。 2.发送用户邮箱名称 让客户端给服务器发送用户信箱名是必须的。因为只有登陆了服务器,才能操作邮箱。先把要发送的内容格式化成POP3标准命令,例如:sUser.Format( "USER %s\r\n", GetUsername()),结果是sUser = "USER GetUsername()\r\n "。然后发送到服务器上,如果对话成功,服务器会返回"+OK",如果失败,则返回"-ERR"。 3.发送信箱密码 用户信箱名发送成功之后,还要发送密码。先把要发送的内容格式化成POP3标准命令,例如:sPassword.Format( "USER %s\r\n", GetPassword ()),结果是sPassword = "Password GetPassword ()\r\n "。然后发送到服务器上,如果对话成功,服务器会返回"+OK",如果失败,则返回"-ERR"。 4.对信箱邮件进行操作 在POP3类里建立一个GetMessage()函数,格式化取邮件命令,把命令发送到POP3服务器端,如果对话成功,那就可以调用CSocket::Receive()函数,把邮件一封一封的取过来,然后存到缓存中。当用户需要查看邮件时候,可以缓存中提出来。当然,最好的方法就是把邮件存到本地磁盘,用户想查看邮件时,就可以从本地读取,省去了再一次登陆服务器来取邮件的麻烦。而本系统就是采用了把邮件存储到本地的策略。 5.断开连接 在收取完邮件时,为了避免资源泄露,要关闭连接。调用CPOP3类Disconnect函数可以断开与POP3服务器的连接。CPOP3:Disconnect()先把QUIT命令发送给SMTP服务器请求终止会话,然后把缓存区的清空,以防内存泄漏。 3.1.2 提取邮件内容 因为从POP3服务器传送到客户端的信息都是经过编码的,所以要经过解码才能读取用户想要的信息。而且,邮件的内容是经过MIME扩展的。除了信头和信件体的信息,还有一些其它信息,如MIME-Version,Content-Type等。用户对这些信息不感兴趣,所以我们在给译码解码之前,要先提取要用户想要的信息,然后进行解码。解码后所得到的信息就是用户想要的信息。这个过程繁琐复杂,提取信息时要根据信息的特征进行提取。至于对信息的解码,在下一章会有详细的介绍。 3.2 系统测试 在系统开发完后,为了尽可能找出错误,于是对系统进行简单的测试。 3.2.1 用户设置功能测试 功能描述:程序根据邮箱地址和密码,自动生成SMTP服务器地址和POP3服务器地址,并把信息存储到本地。 测试步骤:填写邮箱地址和密码,并按下应用键。 测试结果:SMTP服务器地址和POP3服务器地址信息可以自动生成并存到本地,但是程序界面的信息没有马上刷新显示出来,如图3.5。存储文件的内有没有经过加密,容易泄漏用户信息。
|
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |