版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某著名企业石河子经济开发区招商引资及管理体系咨询项目建议书11
- 某著名企业品牌翻新策略提报
- 《GBT 22237-2008表面活性剂 表面张力的测定》专题研究报告
- 道路安全培训活动记录课件
- 2026年甘肃省平凉市高职单招语文试题题库(答案+解析)
- 2026年冀教版九年级英语上册月考试题(附答案)
- 道教安全生产培训班课件
- 2026年度零售定点药店医保培训考试题库含答案
- 道客企业安全培训
- 2025帕博利珠单抗辅助治疗非小细胞肺癌指南解读课件
- (2025年)四川省自贡市纪委监委公开遴选公务员笔试试题及答案解析
- 2026届江苏省常州市高一上数学期末联考模拟试题含解析
- 2026年及未来5年市场数据中国水质监测系统市场全面调研及行业投资潜力预测报告
- 2026安徽省农村信用社联合社面向社会招聘农商银行高级管理人员参考考试试题及答案解析
- 强夯地基施工质量控制方案
- 艺考机构协议书
- 2025年12月27日四川省公安厅遴选面试真题及解析
- 《生态环境重大事故隐患判定标准》解析
- GB/T 16927.1-2011高电压试验技术第1部分:一般定义及试验要求
- DB32∕T 4107-2021 民用建筑节能工程热工性能现场检测标准
- OECD税收协定范本中英对照文本
评论
0/150
提交评论