- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子邮件客户端软件答辩ppt
电子邮件客户端软件;1.引言;1.2开发背景介绍 ;1.3运行环境及开发环境;2.软件架构及系统用例图;2.2 系统总体用例;2.3 程序功能框图;3 SMTP协议的研究;3.1 SMTP协议简介及工作原理;3.2 SMTP协议的命令和应答;3.2.2 SMTP的应答码;4 命名控件MailSend;4.1 发送邮件类SmtpMail;4)发送邮件所需的基本参数
比如用于ESMTP等录检验用的用户名、密码,发送邮件需要的收信人,发信人地址以及主题等等在此不再赘述。
4.1.2 主要成员函数说明
1)重载的构造函数 SmtpMail()
此函数主要用于在初始化过程中,把用户选择的附件的路径以参数的形式传给FilePath。
2)添加附件的函数 AddAttachment
传给FilePath的路径,通过这样一个函数就可以循环的动态的添加到IList接口的一个对象中了,方便以后在具体的实现的过程中的使用。
3)得到上传的附件的文件流 GetStream
由于在网络中的操作都是??网络流的形式来实现的,因此先将上传的附件转换成文件流,然后再用Write的方法把这些附件的文件流写入到网络中,来完成发送附件的操作。;4)将字符串编码为Base64字符串的函数 Base64Encode
由于ESMTP的LOGIN认证机制是采用Base64编码,当用户发出AUTHLOGIN的命令后,服务器返回334的应答码等待用户输入。如果身份确认后服务器返回235的应答码,否则返回失败信息。所以要将用户名和密码转换成Base64编码然后再发给服务器。此函数的作用就是把给定的字符串转换成相应的Base64编码的字符串。
5) 发送SMTP命令的函数 SendCommand
这个函数的作用是把SMTP命令的字符串转换成对应的字节型值(C#中规定的Write方法只能写入字节型的数据)然后写入网络中,如果操作成功就返回一个标志为真的布尔型变量,如果操作失败或者发生异常就返回标志为假的布尔型变量 ;6) 接受服务器应答的函数 RecvResponse
它的作用就是从网络流中读取服务器返回的字节型的信息,将其转换成字符串型的变量,然后将其返回,可以通过其返回值来判断操作是否成功。具体实现代码如下所示:
7) 重载的函数 Dialog
它们的作用是与服务器交互,发送命令并接收回应。不同的是参数是字符串类型的那个函数,每次发送一条命令,并接受服务器的响应,根据响应的信息来判断交互的结果是否成功。而参数是字符串数组的函数每次发送的是一组命令,用于和服务器的交互,这个函数主要是用于ESMTP服务器的验证的功能,因为验证的过程是一个等待然后又输入的过程,因此将他们放在一个数组中有利于理解和操作。而他们的实现主要是通过调用上面的发送SMTP命令函数SendCommand以及接受SMTP服务器响应的函数RecvResponse来实现的。具体的代码如下所示:;8) 邮件发送程序 SendMail
这是整个程序的核心部分。具体的实现SMTP协议的程序正是通过它一步一步实现并最终实现发送简单邮件甚至带附件的邮件的功能。而它的实现是调用以上给出的各个函数的结果。以下就简单的通过几个SMTP命令的格式来实现;private bool SendEmail()
{
//连接网络
try
{
//建立一个TCP连接
tc=new TcpClient(mailserver,mailserverport);
}
catch
{
MessageBox.Show (连接失败,请确认);
return false;
}
//获取当前流的资料
ns = tc.GetStream();
SMTPCodeAdd();
//验证网络连接是否正确
if(RightCodeHT[RecvResponse().Substring(0,3)]==null)
{
return false;
}
string[] SendBuffer;
;if(ESmtp)
{
SendBuffer=new String[4];
SendBuffer[0]=EHLO + mailserver + enter;
SendBuffer[1]=AUTH LOGIN + enter;
SendBuffer[2]=Base64Encode(username) + enter;
SendBuffer[3]=Base64Encode(password) + enter;
if(!Dial
您可能关注的文档
最近下载
- 化工企业防泄漏管理培训课件.pdf
- 芜湖市2024届英语九年级第一学期期末学业水平测试试题含解析.pdf VIP
- 全国各省石氏辈分收集(66页).docx VIP
- 2024-2025学年 八年级上册物理(2024年新教材)教材课后习题-练习与应用(原动手动脑学物理).docx
- ISO9001质量手册中英文版.pdf
- 权力的48条法则 中文版.pdf
- 七年级第一学期信息技术复习知识点.pdf VIP
- 初中数学教师兼班主任工作总结_..doc VIP
- YY_T 0466.1-2023 医疗器械 用于制造商提供信息的符号 第1部分通用要求.pdf
- 内蒙古农业大学2022-2023学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
文档评论(0)