SMTP与POP3应用编程.ppt_第1页
SMTP与POP3应用编程.ppt_第2页
SMTP与POP3应用编程.ppt_第3页
SMTP与POP3应用编程.ppt_第4页
SMTP与POP3应用编程.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

第9章SMTP与POP3应用编程,9.1SMTP简介9.2POP3简介9.3邮件收发相关类9.4邮件收发举例,本章重点,本章教学目的通过实例熟悉异步开发邮件接收及发送程序的核心流程。本章教学要求(1)熟悉SMTP和POP3编程的流程。(2)掌握如何发送和接收邮件。,9.1SMTP简介,9.1.1SMTP和ESMTP9.1.2与邮件服务器连接9.1.3邮件的发送过程,9.1.1SMTP和ESMTP,1.SMTP和ESMTP简介SMTP是SimpleMailTransferProtocol的简称,即简单邮件传输协议,命令和响应都是基于ASCII文本,命令和响应并均以回车(CR)和换行(LF)符结束。SMTP服务器(1)SMTP服务器是遵循SMTP协议的发送邮件服务器,用来发送或中转电子邮件。(2)SMTP服务器在TCP的25端口监听连接请求。客户端发送电子邮件过程是:先通过客户端软件将邮件发送到SMTP邮件服务器,然后再由SMTP邮件服务器发送到目标SMTP邮件服务器。,9.1.1SMTP和ESMTP(续),ESMTP指ExtendedSMTP(扩展SMTP),ESMTP与SMTP的区别是:SMTP发信不需要验证用户帐户,而ESMTP发信时,服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与SMTP方式完全相同。提供服务器端软件的方式(1)随操作系统一起提供的服务,如IIS中的SMTP服务。(2)软件公司提供的SMTP服务器软件。,9.1.1SMTP和ESMTP(续),提供客户端软件的方式(1)Windows应用程序客户端软件,比如OutLook、Foxmail等(2)提供SMTP服务的公司提供的Web应用程序,比如提供的邮件服务。客户端发送电子邮件过程首先通过25端口与SMTP邮件服务器建立连接,然后向服务器发送命令,将邮件发送到SMTP邮件服务器,然后再由SMTP邮件服务器发送到目标SMTP邮件服务器。,9.1.1SMTP和ESMTP(续),2.SMTP的基本命令表9-1中列出了常用的SMTP的基本命令SMTP命令总共定义了14个命令,命令由命令码和其后的参数域组成。命令码不区分大小写。,9.1.1SMTP和ESMTP(续),在SMTP协议中,电子邮件由三部分组成,信封、首部和正文。1)信封信封包括发信人的邮件地址和接收人的邮件地址,包括两条SMTP命令。MAILFROM:,告诉SMTP服务器发信人的地址。RCPTTO:,告诉SMTP服务器收信人的地址。,9.1.1SMTP和ESMTP(续),2)首部。首部常用命令:FROM:,表明邮件发送者是谁。TO:,表明邮件接收者是谁。SUBJECT:,表明邮件的主题。DATE:,表明发邮件的时间。REPLY-TO:,表明邮件的回复地址。Content-Type:,表明邮件包含文本、HTML超文本和附件类型。X-Priority:,表明邮件的发送优先级。MIME-Version:,指定传输内容的消息、附件及其内容格式。,9.1.1SMTP和ESMTP(续),3)正文正文是邮件的内容。首部以一个空行结束,再下面就是正文部分。4)结束符号符合协议的邮件均以“.”结束。客户端软件接收到邮件后,再将其转换为某种形式展现给用户。,9.1.1SMTP和ESMTP(续),3.响应信息接收方收到SMTP命令之后,会给出一个响应码。发送者在发送下一条命令前必须等待应答,成功应答才能继续向下执行。每个命令必须有且只有一个响应码。SMTP响应码由3位数字组成,其后跟一些文本信息。格式:3位数字的响应码文本其中,SP表示空格,CRLF表示回车换行。表9-2,9.1.2与邮件服务器连接,1与SMTP服务器的连接命令格式:HELO格式举例:HELOLocal2与ESMTP服务器建立连接(1)命令格式:EHLO格式举例:EHLOLocal(2)启动服务器认证命令格式:AUTHLOGIN3断开与服务器的连接命令格式:QUIT客户端发送QUIT命令,退出系统,断开与服务器的连接,9.1.3邮件的发送过程,第1步:客户端先与服务器建立连接。客户端发送“EHLOLocal”命令,服务器收到后返回“220”响应码,表示服务器准备就绪。客户端发送“AUTHLOGIN”命令,服务器收到后返回“334”响应码,表示要求用户输入用户名。客户端发送经过Base64编码处理的用户名,服务器收到并经认证成功后返回“334”响应码,表示要求用户输入密码。客户端发送经过Base64编码处理的密码,服务器收到并经认证成功后返回“235”响应码,表示认证成功,用户可以发送邮件。,10.1.3邮件的发送过程,第2步:客户端开始发送邮件的信封。客户端发送“MAILFROM:”命令,服务器收到后返回“250”响应码,表示请求操作就绪。客户端发送“RCPTTO:”命令,服务器收到后返回“250”响应码,表示请求操作就绪。第3步:客户端开始发送邮件数据。客户端发送“DATA”命令,表示开始向服务器发送邮件数据,包括邮件的首部和正文。客户端发送邮件首部(可选)。客户端发送正文。客户端发送“QUIT”命令,表示断开连接。,9.2POP3简介,客户端接收邮件时,可以通过两种方式来读取和保存接收到的邮件。使用POP(PostOfficeProtocol,即邮局协议)用于电子邮件的接收。常用的是第三版,简称POP3。POP允许客户端连接到服务器并且下载所有的邮件到客户机上的邮箱。使用IMAP(InternetMessageAccessProtocol,Internet邮件访问协议)。IMAP使用的端口是143,目前常用版本是IMAP4。IMAP允许客户端在邮件服务器上建立文件夹保存邮件而不用下载邮件到客户机上。,9.2POP3简介,POP3规定每条命令均由命令和参数两部分组成,每条命令都以回车(CR)换行(LF)结束。命令和参数之间由空格间隔。POP3服务器回送的响应信息由状态码和附加信息(可选)组成。所有响应也以回车(CR)换行(LF)结束。状态码有两种:+OK表示正确执行了客户端发送的命令-ERR表示服务器执行命令失败,9.2POP3简介(续),POP3命令及执行过程假设用C表示客户端(Client),S表示服务器端(Server)。客户端首先使用TCP与POP3服务器建立连接,连接成功后,服务器发送一个单行的确认信息,然后要求客户端发送用户名和密码进行确认,下面是客户端发送的命令:发送用户名。格式:USER服务器返回:+OK用户名正确;-ERR用户名错误。示例:C:USERmynameS:+OKwelcomeonthisserver.,9.2POP3简介(续),发送密码用户名确认成功后,客户端再发送密码。语法形式:PASS功能:将客户的密码发送给服务器。服务器返回:+OK表示密码正确;-ERR表示密码错误。示例:C:PASS*S:+OKmynameloggedinat19:04,9.2POP3简介(续),服务器对用户名和密码验证成功后,客户端就可以发送POP3命令要求服务器执行相应的操作。对于每个命令,服务器都会返回应答信息。常用命令有:STAT命令格式:STAT功能:从服务器中获邮件总数和总字节数。服务器返回:邮件总数和总字节数。示例:C:STATS:+OK2320,9.2POP3简介(续),LIST命令格式:LIST功能:从服务中获得邮件列表和大小。服务器返回:列出邮件列表和大小。示例:C:LISTS:+OK2messages(320octets)S:1120S:2200S:.注意,“.”单独占一行。,9.2POP3简介(续),RETR命令格式:RETR功能:从服务器中获得一个邮件。服务器返回:+OK成功;-ERR错误。示例:C:RETR1S:+OK120octetsS:S:.注意,“.”单独占一行。,9.2POP3简介(续),DELE命令语法形式:DELE功能:服务器将邮件标记为删除,当执行QUIT命令时才真正删除。服务器返回:+OK成功;-ERR错误。示例:C:DELE1S:+OK1DeletedQUIT命令格式:QUIT功能:关闭与服务器的连接。服务器返回:+OK;-ERR。示例:C:QUITS:+OK然后服务器自动断开与该客户端的连接。,9.3邮件收发相关的类,9.3.1NetworkCredential类9.3.2MailAddress类9.3.3MailMessage类9.3.4Attachment类9.3.5SmtpClient类9.3.6邮件附加信息类,9.3.1NetworkCredential类,NetworkCredential类用于提供客户端身份验证凭据,提供SMTP服务器需要验证的用户名和密码,用法为:NetworkCredentialmyCredentials=newNetworkCredential(“发件人邮箱,密码);,9.3.2MailAddress类,位于System.Net.Mail命名空间下MailAddress类用于提供发件人和收件人的邮件地址举例:MailAddressfrom=newMailAddress(“发件人邮箱);MailAddressto=newMailAddress(“收件人邮箱);,9.3.3MailMessage类,位于System.Net.Mail命名空间下MailMessage类用于提供邮件的信息,包括主题、内容、附件、信息类型等,举例:MailMessagemessage=newMailMessage(from,to);message.Subject=“我的邮件;message.SubjectEncoding=System.Text.Encoding.UTF8;message.Body=“这是邮件内容;message.BodyEncoding=System.Text.Encoding.UTF8;,9.3.4Attachment类,提供附件对象,例如:AttachmentattachFile=newAttachment(“aa.rar);message.Attachments.Add(attachFile);,9.3.5SmtpClient类,将电子邮件发送到SMTP服务器。使用SmtpClient发送的电子邮件包含Attachment、MailAddress和MailMessage的相关信息。构造函数:(1)SmtpClient():用专门的配置文件初始化SmtpClient类的新实例。配置文件中包括客户端的Host、Credentials和Port属性。(2)SmtpClient(stringserverName):用指定的SMTP服务器发送电子邮件,服务器端口默认为25。例如:SmtpClientclient=newSmtpClient(“);client.Send(message);(3)SmtpClient(stringserverName,intport):指定SMTP服务器和端口。例如:SmtpClientclient=newSmtpClient(“,25);client.Send(message);,9.3.5SmtpClient类(续),常用属性Credentials属性:获取或设置验证发件人身份的凭据。EnableSsl属性:是否使用安全套接字层加密连接。Port属性:获取或设置SMTP服务器端口TimeOut属性:获取或设置发送的超时时间。常用方法:Send方法:采用同步方式发送电子邮件。SendAsync方法:采用异步方式发送电子邮件。SendAsyncCancel方法:取消异步发送。SendCompleted事件:异步发送完成时触发。,9.3.6邮件附加信息类,System.Net.Mime命名空间包含用于表示MultipurposeInternetMailExchange(MIME,多用途因特网邮件扩展)标头的类型。使用SmtpClient类发送电子邮件时与System.Net.Mail命名空间中的类联合使用,用于指定Content-Type、Content-Disposition和Content-transfer-Encoding标头。表9-5和表9-6,9.3.6邮件附加信息类,例如:Attachmentattachment=newAttachment(C:a.doc,MediaTypeNames.Application.Octet);attachment.TransferEncoding=TransferEncoding.Base64;ContentDispositioncd=attachment.ContentDisposition;cd.CreationDate=File.GetCreationTime(pathFileNam);cd.ModificationDate=File.GetLastWriteTime(pathFileName);cd.ReadDate=File.GetLastAccessTime(pathFileName);,9.4邮件收发举例,9.4.1同步方式收发邮件举例9.4.2异步方式收发邮件举例,9.4.1同步方式收发邮件举例,例9-1:同步发送。运行效果,9.4.1同步方式收发邮件举例(续),例9-2:同步接收。运行效果,9.4.2异步方式收发邮件,异步发送邮件的代码和同步发送的代码不同的地方在于发送电子邮件时使用的是SmtpClient类提供的异步发送方法SendAsync若要取消异步发送电子邮件则调用SmtpClient类的SendAsyncCancel方法当异步发送邮件操作完成时触发SendCompleted事件,可以在该

温馨提示

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

评论

0/150

提交评论