关闭

关闭

关闭

封号提示

内容

首页 C#网络应用高级编程 教学课件 ppt 作者 马骏 郑逢斌 沈夏炯1 第5章 SMTP与POP…

C#网络应用高级编程 教学课件 ppt 作者 马骏 郑逢斌 沈夏炯1 第5章 SMTP与POP3应用编程.ppt.ppt

C#网络应用高级编程 教学课件 ppt 作者 马骏 郑逢斌 …

希望
2019-09-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《C#网络应用高级编程 教学课件 ppt 作者 马骏 郑逢斌 沈夏炯1 第5章 SMTP与POP3应用编程.pptppt》,可适用于高等教育领域

吉林快3—吉林快三高等教育频道提供C#网络应用高级编程 教学课件 ppt 作者 马骏 郑逢斌 沈夏炯1 第5章 SMTP与POP3应用编程.ppt.ppt文档免费下载,数万用户每天上传大量最新资料,数量累计超一个亿!

*第章SMTP与POP应用编程通过应用程序发送电子邮件利用同步TCP接收电子邮件*电子邮件是通过SMTP服务器进行发送的SMTP是英文SimpleMailTransferProtocol的缩写意为简单邮件传输协议默认端口为。使用SMTP协议发送邮件时有两种形式:)客户端可以使用匿名方式发送邮件不使用客户端认证这种方式即是一般的SMTP协议)客户端必须提供用户名和密码这种方式称为ESMTP协议即ExtendedSMTP或者叫扩展SMTP。。)ESMTP与SMTP的区别除了是否需要认证以外其他均相同。为了避免或者减少垃圾邮件目前大部分SMTP邮件服务器一般均采用用户名密码认证的方式。通过应用程序发送电子邮件*在SMTP协议中电子邮件由三部分组成信封、首部和正文。)信封信封包括发信人的邮件地址和接收人的邮件地址用两条SMTP命令指明。①MAILFROM:发信人的地址告诉SMTP服务器发信人的地址。②RCPTTO:收信人的地址告诉SMTP服务器收信人地址。通过应用程序发送电子邮件(续)*通过应用程序发送电子邮件(续))首部首部中常用命令:①FROM:姓名邮件地址表明邮件发送者是谁。②TO:姓名邮件地址表明邮件接收者是谁。③SUBJECT:邮件标题表明邮件的主题。④DATE:时间表明发邮件的时间。⑤REPLYTO:邮件地址表明邮件的回复地址。⑥ContentType:邮件类型表明邮件包含文本、HTML超文本和附件的哪些类型。⑦XPriority:邮件优先级表明邮件的发送优先级。⑧MIMEVersion:版本MIME的意思是MultipurposeInternetMailExtensions即多用途Internet邮件扩展标准它对传输内容的消息、附件及其他的内容定义了格式。*通过应用程序发送电子邮件(续))正文正文是邮件的内容。首部以一个空行结束再下面就是正文部分。)结束符号邮件以ldquordquo结束。*通过应用程序发送电子邮件(续)对于运行在没有专用邮件服务器的大多数客户程序而言向SMTP服务器发送邮件需要提供用户名和密码服务器验证成功后才能进行发送或接收。因此在应用程序中发送邮件需要使用下面几个类:)SystemNet命名空间下的NetworkCredential类该类用于提供客户端身份验证机制的凭据。其中包括标准Internet身份验证方法(基本、简要、协商、NTLM和Kerberos身份验证)以及可以创建的自定义方法。在邮件发送中我们需要使用这个类提供SMTP服务器需要的用户名和密码用法为:NetworkCredentialmyCredentials=newNetworkCredential(发件人邮件地址,密码)*通过应用程序发送电子邮件(续))SystemNetMail命名空间下的MailAddress类该类用于提供发件人和收件人的邮件地址常用形式为:MailAddressfrom=newMailAddress(发件人邮件地址)MailAddressto=newMailAddress(收件人邮件地址)*通过应用程序发送电子邮件(续))SystemNetMail命名空间下的MailMessage类该类用于提供邮件的信息包括主题、内容、附件、信息类型等常用形式为:MailMessagemessage=newMailMessage(from,to)messageSubject=主题messageSubjectEncoding=SystemTextEncodingmessageBody=邮件内容messageBodyEncoding=SystemTextEncoding*通过应用程序发送电子邮件(续))SystemNetMail命名空间下的Attachment类该类用于提供附件对象常用形式为:AttachmentattachFile=newAttachment(文件名)messageAttachmentsAdd(attachFile))SmtpClient类该类用于发送邮件常用形式为:SmtpClientclient=newSmtpClient(邮件服务器地址)clientSend(message)*利用同步TCP接收电子邮件收发邮件使用了两种协议一种是TCP协议用于收发数据另一种是POP协议用于解析传送的命令。接收电子邮件主要是利用POP(PostOfficeProtocol)协议现在常用的是第三版简称为POP默认端口为。通过POP协议客户机登录到服务器后可以对自己的邮件进行删除或下载下载后电子邮件客户端软件就可以在本地对邮件进行处理。POP工作原理客户端软件读取邮件之前需要事先与服务器建立TCP连接。连接成功后POP服务器会向该客户端发送确认消息客户端等待服务器响应并处理接收的信息然后再接着发送下一个命令如此往复多次一直持续到连接终止。这个过程经历了三个状态:授权状态(AUTHORIZATION)、操作状态(TRANSACTION)和更新状态(UPDATE)。*利用同步TCP接收电子邮件(续)POP协议中的命令每条命令均由命令和参数两大部分组成而且每条命令都以回车换行结束。命令和参数之间由空格间隔。POP服务器回送的响应信息由一个状态码和一个可能跟有附加信息的命令组成。所有响应也以回车换行结束。状态码有两种:ldquo确定rdquo(ldquoOKrdquo)和ldquo失败rdquo(ldquoERRrdquo)。POP协议工作的具体过程假设用C表示客户端(Client)S表示服务器端(Server)。)授权状态客户端首先与POP服务器建立TCP连接服务器接收后发送一个单行的确认信息。此时POP会话就进入了授权状态。在授权状态客户需要向服务器发送用户名和密码进行确认具体命令如下:*利用同步TCP接收电子邮件(续)①发送用户名。语法形式:USER用户名功能:将客户的用户名发送到服务器。服务器返回:OK正确的用户名ERR错误的用户名。示例:C:USERmynamecomS:OKwelcomeonthisserver②用户名确认成功后需要输入密码。语法形式:PASS密码功能:将客户的密码发送给服务器。服务器返回:OK正确的用户名OK错误的用户名。示例:C:PASS*****S:OKmynameloggedinat:*利用同步TCP接收电子邮件(续))操作状态授权成功后POP会话将进入操作状态客户就可以执行POP命令进行相应的操作。对于每个命令服务器都会返回应答信息。下面是在操作状态中使用的命令:①STAT命令语法形式:STAT功能:从服务器中获邮件总数和总字节数。服务器返回:邮件总数和总字节数。示例:C:STATS:OK②LIST命令语法形式:LIST功能:从服务中获得邮件列表和大小。*利用同步TCP接收电子邮件(续)服务器返回:列出邮件列表和大小。示例:C:LISTS:OKmessages(octets)S:S:S:③RETR命令语法形式:RETR邮件的序号功能:从服务器中获得一个邮件。服务器返回:OK成功ERR错误。示例:C:RETRS:OKoctetsS:服务器发送信件内容S:注意这里的ldquordquo是单独发送的。*利用同步TCP接收电子邮件(续)④DELE命令语法形式:DELE邮件的序号功能:服务器将邮件标记为删除当执行QUIT命令时才真正删除。服务器返回:OK成功ERR错误。示例:C:DELES:OKDeleted)更新状态当客户在操作状态下发送QUIT命令后会话进入更新状态。QUIT命令语法形式:QUIT功能:关闭与服务器的连接。*利用同步TCP接收电子邮件(续)服务器返回:OKERR。示例:C:QUITS:OK然后服务器自动断开与该客户端的TCP连接。邮件接收处理这个例子中只需要编写客户端程序而不需要编写服务器端程序即可正常运行。我们重点关心的是如何利用同步TCP发送和接收数据。部分代码*利用同步TCP接收电子邮件(续)①建立连接intindex=textBoxUserTextIndexOf(##)大部分pop服务器都加前缀pop这里仅获取这种服务器对不以pop为前缀的这个例子未进行处理stringpopServer=poptextBoxUserTextSubstring(index)*利用同步TCP接收电子邮件(续)建立与POP服务器的连接使用默认端口tcpClient=newTcpClient(popServer,)listBoxStatusItemsAdd(与pop服务器连接成功)helliphellip获取Networkstream对象以便通过建立好的连接发送和接收数据networkStream=tcpClientGetStream()得到读对象并查找字节顺序标记防止显示乱码sr=newStreamReader(networkStream)得到写对象sw=newStreamWriter(networkStream)读取服务器回送的连接信息if(ReadDataFromServer()==)return*利用同步TCP接收电子邮件(续)向服务器发送用户名请求确认if(SendDataToServer(USERtextBoxUserText)==false)returnif(ReadDataFromServer()==)return向服务器发送密码请求确认if(SendDataToServer(PASStextBoxPasswordText)==false)returnif(ReadDataFromServer()==)return向服务器发送STAT命令请求获取邮件总数和总字节数if(SendDataToServer(LIST)==false)returnif((str=ReadDataFromServer())==)return②从网络流中读取服务器回送的信息写入信息列表框stringstr=*利用同步TCP接收电子邮件(续)str=srReadLine()listBoxStatusItemsAdd(收到:str)如果是ERR表明有错if(str==##){MessageBoxShow(str,有错了)str=}③断开连接向服务器发送QUIT命令SendDataToServer(QUIT)srClose()swClose()networkStreamClose()tcpClientClose()

类似资料

该用户的其他资料

2015.11创新杯创新杯说课大赛国赛说课课件.ppt

19--课程..创新杯说课大赛国赛说课课件.ppt

2014创新杯直线的倾斜角与斜率课程创新杯说课大赛国赛说课课件.ppt

13幼师3 住创新杯说课大赛国赛说课课件.ppt

2010血栓的形成讲课曹颜冬创新杯说课大赛国赛说课课件.ppt

职业精品

精彩专题

让你惊艳又清新的英文短诗合集

让你清新惊艳的英文小诗有哪些呢?小编汇集了以下经典英文诗、唯美爱情小诗、英文诗押韵技巧等等,让爱好英文短诗的你能够一起体验其中的乐趣!

用户评论

0/200
上传我的资料

热门资料排行换一换

  • 内镜下微创保胆手术和胆囊切除术对肠…

  • 2012年国家公务员面试:社会现象…

  • [小学教育]武汉宣传栏公告栏广告制…

  • 土方回填及调土平衡方案(修改)

  • 学生选课管理系统(详细设计说明书)

  • 耳鼻咽喉见习指导(4次)new

  • 第三单元 凯蒂学艺(备课)

  • 历史学专业必读书目

  • 徐州市房地产消费者研究分析调查报告

  • 资料评价:

    / 20
    所需积分:0 立即下载

    VIP

    在线
    客服

    免费
    邮箱

    吉林快3—吉林快三服务号

    扫描关注领取更多福利