版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第5章章 SMTP应用编程应用编程 5.1 5.1 通过应用程序发送电子邮件通过应用程序发送电子邮件 2 电子邮件是通过电子邮件是通过SMTP服务器进行发送的,服务器进行发送的,SMTP是英文是英文Simple Mail Transfer Protocol的缩的缩写,意为简单邮件传输协议,默认端口为写,意为简单邮件传输协议,默认端口为25。使。使用用SMTP协议发送邮件时,有两种形式:协议发送邮件时,有两种形式: 1) 客户端可以使用匿名方式发送邮件,不使用客户端客户端可以使用匿名方式发送邮件,不使用客户端认证,这种方式即是一般的认证,这种方式即是一般的SMTP协议协议 2) 客户端必须提
2、供用户名和密码,这种方式称为客户端必须提供用户名和密码,这种方式称为ESMTP协议,即协议,即Extended SMTP,或者叫扩展,或者叫扩展SMTP。 3) ESMTP与与SMTP的区别除了是否需要认证以外,其的区别除了是否需要认证以外,其他均相同。为了避免或者减少垃圾邮件,目前大部分他均相同。为了避免或者减少垃圾邮件,目前大部分SMTP邮件服务器一般均采用用户名密码认证的方式。邮件服务器一般均采用用户名密码认证的方式。 5.1 通过应用程序发送电子邮件通过应用程序发送电子邮件3 在在SMTP协议中,电子邮件由三部分组成,协议中,电子邮件由三部分组成,信封、首部和正文。信封、首部和正文。
3、1)信封信封 信封包括发信人的邮件地址和接收人的邮件信封包括发信人的邮件地址和接收人的邮件地址,用两条地址,用两条SMTP命令指明。命令指明。 MAIL FROM:,告诉,告诉SMTP服务器发信人的地址。服务器发信人的地址。 RCPT TO:,告诉,告诉SMTP服务器收信人地址。服务器收信人地址。 5.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续) 45.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续)2)首部首部 首部中常用命令:首部中常用命令: FROM:,表明邮件发送者是谁。,表明邮件发送者是谁。 TO:,表明邮件接收者是谁。,表明邮件接收者是谁。 SUBJEC
4、T:,表明邮件的主题。,表明邮件的主题。 DATE:,表明发邮件的时间。,表明发邮件的时间。 REPLY-TO:,表明邮件的回复地址。,表明邮件的回复地址。 Content-Type:,表明邮件包含文本、,表明邮件包含文本、HTML超文超文本和附件的哪些类型。本和附件的哪些类型。 X-Priority:,表明邮件的发送优先级。,表明邮件的发送优先级。 MIME-Version:,MIME的意思是的意思是Multipurpose Internet Mail Extensions,即多用途,即多用途Internet邮件扩展标准,它对邮件扩展标准,它对传输内容的消息、附件及其他的内容定义了格式。传输
5、内容的消息、附件及其他的内容定义了格式。 55.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续)3)正文正文 正文是邮件的内容。首部以一个空行结束,正文是邮件的内容。首部以一个空行结束,再下面就是正文部分。再下面就是正文部分。4) 结束符号结束符号 邮件以邮件以“rn.rn”结束。结束。65.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续) 对于运行在没有专用邮件服务器的大多数客户程对于运行在没有专用邮件服务器的大多数客户程序而言,向序而言,向SMTP服务器发送邮件需要提供用户服务器发送邮件需要提供用户名和密码,服务器验证成功后,才能进行发送或名和密码,服务器验证成功后
6、,才能进行发送或接收。接收。 75.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续) 85.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续) (1)SMTP服务器主动临听服务器主动临听TCP端口端口25,客户端,客户端如要发送邮件的话,必须先与服务器建立如要发送邮件的话,必须先与服务器建立TCP连连接。接。 (2)客户端向服务器发送的命令形式:用)客户端向服务器发送的命令形式:用ASCII表示,之间由空格间隔,并以回车加换行结束。表示,之间由空格间隔,并以回车加换行结束。 (3)SMTP服务器响应码形式,由三位数字组成,服务器响应码形式,由三位数字组成,每一位都有特殊含
7、义。每一位都有特殊含义。 95.1 通过应用程序发送电子邮件通过应用程序发送电子邮件(续续) SMTP中常用的几个命令:中常用的几个命令: (1)HELLO命令命令:用于向服务器标识用户身份,如果操作成成功,服用于向服务器标识用户身份,如果操作成成功,服务器返回代码务器返回代码250 HELO (2)MAIL命令命令:用于指定信封的发件人,如果操作成成功,服务器用于指定信封的发件人,如果操作成成功,服务器返回代码返回代码250 MAIL FROM (3)RCPT命令命令:用于指定信封的邮件接收人,如果操作成成功,服用于指定信封的邮件接收人,如果操作成成功,服务器返回代码务器返回代码250 RC
8、PT TO (4)DATA命令命令:用于指定开始传输邮件,如果操作成成功,服务器用于指定开始传输邮件,如果操作成成功,服务器返回代码返回代码354 DATA (5)QUIT命令:用于结束回话,退出与命令:用于结束回话,退出与SMTP的的TCP连接,如果操连接,如果操作成功,服务器返回作成功,服务器返回221。 105.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(1)连接连接SMTP服务器服务器 如如:Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, Protoc
9、olType.Tcp); clientSocket.Connect(, 25);(2)连接成功后创建网络流对象连接成功后创建网络流对象 ns = new NetworkStream(clientSocket); sr = new StreamReader(ns, Encoding.Default); sw = new StreamWriter(ns, Encoding.Default);115.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(3)编写利用网络流发送命令的函数编写利用网络流发送命令的函数 private bool SendCommand(string str)
10、 byte sendBytes = Encoding.Default.GetBytes(str + rn); try ns.Write(sendBytes, 0, sendBytes.Length); ns.Flush(); catch (System.Exception ex) return false; return true; 125.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(4)编写接收编写接收SMTP响应函数响应函数 private string GetReply() string temp = ; try temp = sr.ReadLine(); cat
11、ch (System.Exception ex) return temp; 135.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(5)登陆登陆SMTP服务器服务器 SendCommand(“AUTH LOGIN”);请求请求SMTP认证认证身份身份 string userName = ConvertTo64Str(textBoxUserName.Text.Trim(); SendCommand(userName);向向SMTP服务器发送服务器发送用户名用户名,其中用户名要使用其中用户名要使用Base 64编码格式进行编编码格式进行编码码 string password =
12、 ConvertTo64Str(textBoxPasswd.Text); SendCommand(password);向向SMTP服务器发送服务器发送密码密码,其中密码要使用其中密码要使用Base 64编码格式进行编码编码格式进行编码145.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(6)编写把用户名与密码接照编写把用户名与密码接照Base 64编码格式进行编码函数编码格式进行编码函数 private string ConvertTo64Str(string str) try byte data = Encoding.Default.GetBytes(str); str
13、 = Convert.ToBase64String(data); return str; catch (System.Exception e) return null; 155.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(7)发送信封发送信封 temp = MAIL FROM:; SendCommand(temp);/发送信封的发件人发送信封的发件人 temp = RCPT TO:; SendCommand(temp);/发送信封的收件人发送信封的收件人 165.1基于基于SMTP协议发送邮件程序设计步骤协议发送邮件程序设计步骤(8)发送正文发送正文 (a) SendCommand(“DATA”);表示开始发送邮件表示开始发送邮件 (b) SendCommand(From: ); SendCommand(To: ); SendCommand(Subject: test); SendCommand(“D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融科技在消费金融中的安全保障措施研究
- 大健康产业运营及营销推广策略研究
- 公司产品专员招聘要点分析
- 企业技术转化中的创新思路与方法探讨
- 旅游行业导游员岗位面试技巧指导
- 教育装备公司业务销售经理招聘策略全解析
- 劳动保障医保就业前景
- 制造业总经理面试常见问题
- 法规事务部业务培训计划及执行情况反馈
- 物流公司经理面试全解析
- 气候变化与健康课件
- 全面从严治团+筑牢团纪意识+高一下学期学习《中国共产主义青年团纪律处分条例(试行)》主题团课
- 全国中职班主任基本功大赛笔试试题及答案
- 幼儿园教师培训:打击乐教学
- 冠心病介入治疗的新进展讲课件
- 机械原材料管理制度
- 湖北2025年湖北通城县事业单位招聘330人笔试历年参考题库附带答案详解
- 高等数学 课件全套 第1-9章 函数、极限、连续 -无极穷数
- T/CECS 10326-2023智慧社区大数据平台技术要求
- 血液净化标准操作规程 2021 版
- 音乐教学法课程设计与实施
评论
0/150
提交评论