- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
南昌航空大学
课
程
设
计
说
明
书
课题名称:利用Sendmail实现垃圾邮件的过滤的软件编程
姓名:
学号:
同组人:
指导老师:
课设目的
电子邮件效劳是Internet应用最广泛的效劳类型之一,它的出现极大的改变了人们的门交流方式。得用电子邮件,用户之间不但能够以非常低廉价的费用快速传递文本信息,而且能够快速传递图像,音频和视频等多媒体信息。但是,随着电子邮件应用的深入,垃圾邮件日趋泛滥。大量垃圾邮件不仅增加了网络的负担,更为诈骗,病毒攻击等行为提供了方便条件。因此掌握电子邮件相关的软件编程技术的根本的垃圾邮件过滤技术,对于软件编程人员至关重要。
本次课设将帮助更好的理解电子邮件效劳的工作流程;
掌握电子邮件的体系结构,SMTP协议及相关协议的根本原理。
课设要求
利用Sendmail邮件效劳器的Milter接口实现所需要的回调函数,具体要求如下:
黑名单功能:如果邮件发送方在黑名单内,那么拒绝接收或转发该邮件;
白名单功能:如果邮件发送方在白名单内,那么允许接收或转发该邮件;
关键字过滤:如果邮件发送方既不在黑名单内也不在白名单内,那么检查邮件内的内容是否包含被过滤的关键字,如果含有这些信息,那么认为该邮件是非法的,拒绝接收;否那么,允许接收或转发。
实验环境
原本要求是在Linux下完成该软件的编程,但由于一些原因不得不改变实验环境,所以我们选择在VC++6.0下进行课设。
课设任务分析
在此次课设中,我负责的任务是主函数局部example.cpp及几个头文件的注释
该局部的流程示意图如下:
在主函数中有用到以下功能:
memset(temp,0,40):这个函数的功能是将较大数组清零,是vc++里已经定义了的,所以我们只需调用就可以了。在这里它的作用是把temp这个数组〔包含了40个元素〕里的每个元素赋值为0。
strcpy(temp,Path):字符串复制函数,被包含在string.h中,相当于“=”,只是运算对象类型不同,strcpy是直接给一个对象赋一串字符。这里的意义是把Path这个变量复制到temp中
strcat(temp,Junk1):字符串连接函数,被包含在string.h中,它是将后面的参数的值加在前面参数值的后面,在这里,它执行完后,temp的值为路径地址Path后接上Junk1。
CBrowseDirstatdir:构造类对象,CBrowerDir是一个自定义的类,里面有很多功能函数,定义了一个对象stadir那么也有这些功能。
SetInitDir(RoughSet[i]):这个就是CBrowerDir类里的一个函数,用于初始化路径变量,将其路径变量转化为绝对路径。
CEvaluatec:CEvaluate也是自定义的一个。
还有很多函数在代码中有详细分析在此也就不缀述了。
课设步骤及相关代码注释
//--------------------------example.cpp------------------------------------//
六、课设结果
七、课设心得
为期一周的网络平安课程设计结束了,在课程设计的过程中,我学到了不少的东西。
网络平安是一门将数网络原理和编程程序相结合的科目,在如今信息化的社会中这是一门非常重要的根底学科。经过一个学期的学习,我对网络平安的思想以及相关的知识原理有了一定的了解和掌握。
本次课程设计是利用sendmai实现垃圾邮件过滤的一次综合性的考验,让我们在对编程语言的熟练掌握的根底上,与网络通信原理相结合,锻炼分析问题和解决问题的能力。在程序的编写中确实遇到了不少的困难和错误。在其过程中,我稳固了原来学习的知识,也对正在学习的知识有了更深入的理解。编程中最难的步骤就是找错误,比方有时分号少一个,大括号少一个,有哪个变量没有定义,变量的类型定义错误等等,还有就是数据库中定义的每个码的值能否为空与程序编写过程中的值相互矛盾,导致程序无法运行。还有的错误是程序可以运行但达不到预期的效果,等等。哪怕是很小很小的错误都要花费很多时间来找出。
在此过程中,大多数情况下是同学们相互探讨解决的,不过也有同学无法解决的错误,幸好有老师的指导和帮助才能使我的程序得以完成和完善。在程序的编写和运行中,调试是不可缺少的步骤,制作这个程序让我学会了如何运用调试功能发现程序中出现的错误,也让我知道了如何通过调试功能把所做的程序一步步的完善。所以,这次实践对我的影响颇深
文档评论(0)