SMTP与POP3应用编程.ppt

上传人:sh****n 文档编号:6413575 上传时间:2020-02-25 格式:PPT 页数:37 大小:331.05KB
返回 下载 相关 举报
SMTP与POP3应用编程.ppt_第1页
第1页 / 共37页
SMTP与POP3应用编程.ppt_第2页
第2页 / 共37页
SMTP与POP3应用编程.ppt_第3页
第3页 / 共37页
点击查看更多>>
资源描述
第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 USERmyname S 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 OK1Deleted QUIT命令格式 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事件 可以在该事件中判断邮件是否发送成功 具体程序见源码 9 4 2异步方式收发邮件 异步接收邮件通过TCP的异步编程实现 异步接收邮件与同步接收邮件不同的地方在于客户端的异步连接 异步发送数据和异步接收数据 异步连接异步建立连接通过使用TcpClient类的BeginConnect方法和EndConnect方法来实现 异步发送数据使用NetWorkStream类中的BeginWrite方法和EndWrite方法可以实现异步发送数据 异步接收数据使用NetWorkStream类中的BeginRead方法和EndRead方法可以实现异步发送数据 9 4 2异步方式收发邮件举例 续 异步接收 运行效果
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!