c网络应用高级编程第5章SMTP与POP3应用编程.ppt_第1页
c网络应用高级编程第5章SMTP与POP3应用编程.ppt_第2页
c网络应用高级编程第5章SMTP与POP3应用编程.ppt_第3页
c网络应用高级编程第5章SMTP与POP3应用编程.ppt_第4页
c网络应用高级编程第5章SMTP与POP3应用编程.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章,SMTP和POP3的应用程序设计,5.1通过应用程序发送电子邮件,5.2通过同步TCP接收电子邮件,电子邮件由SMTP服务器发送,SMTP是英语简单邮件传输协议的缩写,意思是简单邮件传输协议,默认端口为25。使用SMTP协议发送邮件有两种形式:1)客户端可以匿名发送邮件,无需客户端验证,这是一般的SMTP协议;2)客户端必须提供用户名和密码,这称为ESMTP协议或扩展SMTP。3)除了是否需要身份验证之外,ESMTP和SMTP的区别是相同的。为了避免或减少垃圾邮件,目前大多数SMTP邮件服务器通常使用用户名和密码认证。5.1通过应用程序发送电子邮件。在SMTP协议中,电子邮件由三部分组

2、成:信封、邮件头和邮件体。1)信封信封包括发件人的电子邮件地址和收件人的电子邮件地址,由两个SMTP命令指示。来自:的邮件,告诉SMTP服务器发件人的地址。RCPT转:告诉SMTP服务器的收件人地址。5.1通过应用程序发送电子邮件(续),5.1通过应用程序发送电子邮件(续),2)标题中的常用命令:FROM:表示邮件发送者是谁。收件人:指明谁是邮件收件人。主题:指示消息的主题。日期:指示发送电子邮件的时间。回复:表示邮件的回复地址。内容类型:指示哪些类型的消息包含文本、超文本和附件。x-优先级:表示邮件的发送优先级。MIME-Version:MIME表示多用途互联网邮件扩展,即多用途互联网邮件扩

3、展标准,它定义了消息、附件和其他传输内容的格式。5.1通过应用程序发送电子邮件(续),3)正文是电子邮件的内容。标题以空行结束,后面是正文。4)邮件的结尾符号以“.”结尾。5.1通过应用程序发送电子邮件(续)。对于在没有专用邮件服务器的情况下运行的大多数客户端程序,必须提供用户名和密码才能向SMTP服务器发送电子邮件,然后在服务器成功通过身份验证后发送或接收电子邮件。因此,要在应用程序中发送邮件,您需要使用以下类:1)System.Net命名空间下的网络凭据类,用于提供客户端身份验证机制的凭据。其中包括标准的互联网身份验证方法(基本、简单、协商、NTLM和Kerberos身份验证)和可以创建的

4、自定义方法。在邮件发送中,我们需要使用这个类来提供SMTP服务器所需的用户名和密码。用法是:网络凭据我的凭据=新的网络凭据(发件人电子邮件地址,密码);5.1通过应用程序发送电子邮件(续),2)系统下的MailAddress类。net.mail命名空间,用于提供发件人和收件人的邮件地址。常见的形式是:邮件地址从=新邮件地址;邮件地址到=新邮件地址;5.1通过应用程序发送电子邮件(续),3)系统下的邮件类。net.mail命名空间,用于提供邮件信息,包括主题、内容、附件、信息类型等。常见的形式是:邮件消息=新邮件消息(发件人、收件人);信息。主题=主题。信息。主题编码=系统。文本。编码。UTF8

5、;信息。正文=消息内容;信息。身体编码=系统。文本。编码。UTF8;5.1通过应用程序发送电子邮件(续),4)系统下的附件类。net.mail命名空间,用于提供附件对象,常用形式是:附件附件文件=新附件(文件名);信息。附件。添加(附件文件);5) SmtpClient类该类用于发送邮件,常用形式是:SmtpClient client=新的SmtpClient(邮件服务器地址);客户。发送(消息);利用同步传输控制协议接收电子邮件,有两种协议用于发送和接收电子邮件,一种是传输控制协议,用于发送和接收数据;另一个是POP3协议,用于解析传输的命令。电子邮件主要是通过邮局协议接收的,现在邮局协议通

6、常被用作POP3,默认端口为110。通过POP3协议,登录服务器后,客户端可以删除或下载自己的邮件。下载后,电子邮件客户端软件可以在本地处理邮件。1.POP3客户端软件的工作原理是在阅读邮件之前需要与服务器建立TCP连接。连接成功后,POP3服务器将向客户端发送确认消息,客户端将等待服务器的响应,处理收到的信息,然后发送下一个命令,并重复多次,直到连接终止。这个过程经历三种状态:授权、交易和更新。5.2使用同步传输控制协议接收电子邮件(续),2.2中的命令。POP3协议,每个命令由两部分组成:命令和参数,每个命令以回车结束。命令和参数用空格隔开。由POP3服务器发回的响应消息包括一个状态代码和

7、一个命令,随后可能会有附加信息。所有响应也以回车结束。有两个状态代码:“正常”和“失败”(-ERR)。3。3 .具体流程。POP3协议假设C代表客户端,S代表服务器。1)授权客户端首先与POP3服务器建立TCP连接,服务器收到后发送单行确认消息。此时,POP3会话进入授权状态。在授权状态下,客户需要将用户名和密码发送到服务器进行确认。具体命令如下:5.2使用同步传输控制协议接收电子邮件(续)并发送用户名。语法形式:USER函数:将客户的用户名发送到服务器。服务器返回:确定正确的用户名;-ERR错误的用户名。示例:c:用户s:好的,欢迎使用此服务器。用户名确认成功后,您需要输入密码。语法形式:P

8、ASS函数:将客户的密码发送到服务器。服务器返回:确定正确的用户名;-确定用户名不正确。示例:c: pass * * * * * s: ok我的名字登录在19:04,5.2使用同步的TCP接收电子邮件(续),2)操作状态授权成功后,POP3会话将进入操作状态,客户可以执行POP3命令来执行相应的操作。对于每个命令,服务器都会返回一条应答消息。下列命令用于操作status:STAT命令语法:STAT函数:从服务器获取消息总数和字节总数。服务器返回:消息总数和字节总数。示例:c: stats: ok 2 320,5.2使用同步TCP接收电子邮件(续),LIST命令的语法形式:LIST函数:从服务获

9、取电子邮件的列表和大小。服务器返回:列出邮件列表和大小。示例:c:list s:ok 2消息(320个八位字节)s: 1 120s: 2 200s:RETR命令语法形式:retr函数:从服务器获取消息。服务器返回:确定成功;-ERR错误。示例:c: retr1s: ok 120八位字节:s:请注意,“”这里是分开送的。5.2通过同步传输控制协议接收电子邮件(续),DELE命令的语法形式:DELE函数:服务器将电子邮件标记为删除,然后在执行QUIT命令时将其真正删除。服务器返回:确定成功;-ERR错误。示例:c: dele1s: ok1deleted,3)更新状态当客户在操作状态下发送QUIT命

10、令时,会话进入更新状态。退出命令的语法形式:退出功能:关闭与服务器的连接。5.2使用同步传输控制协议接收电子邮件(续),服务器返回:确定;-呃.示例:c:退出s:好的,然后服务器自动断开与客户端的TCP连接。邮件接收和处理在这个例子中,只需要编写客户端程序,而不是服务器程序就可以正常运行。我们主要关心的是如何使用同步的TCP来发送和接收数据。部分代码,5.2使用同步TCP接收电子邮件(续),建立连接int index=textbox user . text . index of();/大多数pop3服务器都以pop3作为前缀。所以这里只获得这种服务器。/这个示例没有以pop3作为前缀。未被处理

11、。字符串POP3服务器=POP3。textboxuser。text.substring(索引1);5.2通过使用同步TCP接收电子邮件(续),/与POP3服务器建立连接,并使用默认端口110 TCP客户端=新的TCP客户端(POP3服务器,110);ListBoxStatus。项目。添加(与pop3服务器的连接成功);/获取Networkstream对象,通过已建立的连接发送和接收数据。network stream=TCP client . getstream();/获取读取对象,并查找字节顺序标记,以防止显示乱码Sr=新流读取器(网络流);/获取写对象SW=新流写入器(网络流);/如果从服务

12、器返回(readdatafromserver ()=null),则读取连接信息;5.2使用同步TCP接收电子邮件(续),/将用户名发送到服务器,如果(将数据发送到服务器(用户textbox user . text)=false)返回,则请求确认;如果(ReadDataFromServer()=null)返回;/如果返回(向服务器发送数据(passtextbox password . text)=false,则向服务器发送密码并请求确认;如果(ReadDataFromServer()=null)返回;/向服务器发送STAT命令,请求获取邮件总数和总字节数,如果(发送数据到服务器(列表)=false)返回;如果(str=ReadDataRomserver()=null)返回;5.2使用同步传输控制协议接收电子邮件(续),从网络流中读取服务器发回的信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论