C语言socket/smtp发送邮件,支持附件,支持windows和linux

  • s2_281024
    了解作者
  • 47.9KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-01 13:04
    上传日期
/* * 使用规则: * 可以发送带附件的邮件,附件大小限制由发送方服务器而定,暂未测试具体为多少MB * 附件可以是多个 * 邮件内容和主题可以是空,但当有附件时,主题取第一个附件的文件名(不含扩展名) * 密码验证均为base64加密 * 邮件正文和附件的数据传送方式,均为base64 * 自动解析发件箱的SMTP服务器 */ 支持windows系统,linux系统。 上一版本的更新版。 详细情况件压缩包的readme
mail.rar
  • mail
  • etc
  • mail.cfg
    493B
  • moontalk.cfg
    302B
  • code
  • mail.c
    24.4KB
  • makefile
    525B
  • bin
  • rc
  • mail.rc
    22B
  • makefile
    325B
  • log
  • include
  • mymail.h
    3.5KB
  • mybase.h
    8.8KB
  • icon
  • mail.ico
    9.4KB
  • res
  • lib
  • mail.c
    27.4KB
  • makefile
    572B
  • base.c
    98.3KB
  • ReadMe.txt
    5.1KB
内容介绍
几个目录的作用: bin 放编译后的exe文件的位置 code App应用源代码的位置 etc 存放配置文件 icon 存在ico图标 rc 资源文件,本处只存放了ico图标的资源文件 res 编译后的二进制资源文件 include 头文件 lib 静态库,此处我使用的是静态库,如果想用动态库,自己修改 本目录下的makefile即可 log 存放日志文件的目录 -------------------------------------------- 如何编译: 因为本人没有安装任何的集成开发工具,所以一律使用命令行gcc编译器进行编译,如果要添加到项目中,可以根据各个目录的职能进行添加 第一步:编译资源文件 说明:rc目录中有一个makefile,它将链接icon目录中的图标文件以及 本目录下的rc文件,编译之后将形成一个res文件,存放在res目录下 编译方法:在rc目录下执行make即可 第二步:编译库文件 说明: 本人最初的设计,将mail单独写成了一个库,并且在include 目录下mymail.h中,提供了三个mail接口,使用这三个接口函数, 可以写出任意模式的app mail应用来,本人在code中提供了一个 版本的app,仅供参考。 因为mail.c中使用了mybase. c中的一些函数接口,所以也把base文件 放在这里,为阅读代码提供方便。 本人目前在linux下做开发,所以特意将windows代码移植过去,在 mybase.h文件中,定义了系统环境,如果想要在linux中运行,到 include目录下mybase.h文件中,修改系统环境即可。目前在RedHat5.5 和ubuntu 12.10中测试通过。 编译方法:在lib目录下执行make lib命令即可 注意:编译前最好到mybase.h文件中查看以下当前系统环境,环境 不符合当前系统,则会有一大堆错。 第三步:编译app文件 说明:code目录下存放了一个mail.c,该文件是一个可以编译成exe的 源代码文件,根据mymail.c文件的三个接口实现,此exe仅供参考,使 用者完全可以根据接口写出另外的程序,因为所有的邮件操作都是在 lib下mail.c完成的。 编译方法:在code目录下执行make即可 ---------------------------------------------------- 关于MOONHOME环境变量的问题。 由于本人长期写代码,且没有集成开发环境,所以特意设定了一个 MOONHOME环境变量,指向我的个人开发目录。下面说一下该环境 变量的用处: 1、编译。在编译的所有makefile文件中,都引用了该变量,如果各位 不想增加该变量,那么需要修改makefile以适应自己的工作目录。 2、运行。在base库代码中,很多常量值以及配置文件都需要根据该环境 变量进行查找,如果运行的时候,该变量没有定义,那么请把etc 目录下的两个配置文件放在与exe同一目录下即可。 ---------------------------------------------------- 关于ETC目录下的两个配置文件。 1、moontalk.cfg 该文件定义了日志系统的一些配置项,以及mail配置 文件的位置。 2、mail.cfg 该文件定义了code目录下mail.c中需要使用到的一些快捷 邮箱操作,详细参看mail.c源代码对该文件的使用。 ----------------------------------------------------- 如何执行 如果使用命令行模式,命令`Mail -help`可以查看命令行模式的帮助。 如果使用双击直接运行的模式,会有一步步提示操作。该模式下,任 何需要输入的地方只要输入quit,那么将退出程序,至于为什么会这样, 各位在mybase.h中去找答案吧。 ------------------------------------------------------ 关于base.c和mybase.h 从名字上可以看出,这是一个基础库。该文件从2011年开始,一直 更新到现在,它提供了很多方便的函数接口,并且定义了日志文件 系统,在任何一个app程序中,只要引用了mybase.h中的InitLog()和 WriteLog函数,那么程序将自动新建线程,去执行所有的写日志操作。 在该库中,还定义了windows下关于注册表操作、目录文件操作等接 口,socket、http请求等网络接口。当然,我不能完全保证里面的代码 一点问题没有,但是再使用了将近一年的情况下,没有任何大的纰漏 出现,即便出现过,也已经被我修改掉了。 我所希望的就是,各位如果有兴趣,可以好好的看一下base.c中的源代码, 尤其是对于C的初学者,会很有帮助。对一些不合理的接口或者代码段, 甚至是算法,有好的意见,一定要联系我,大家一起切磋。 当然,在mail程序中,并不是用到了base的全部,仅仅是一小部分。 ------------------------------------------------------ makefile中的rm 在windows下,执行makefile,估计会报错,因为找不到rm。 rm是我仿照linux系统在windows环境下写的一个文件目录删除 的小工具,如果你的系统没有这个命令,使用自带的DEL修改 makefile就行了。 倘若,你想写一个rm,或者cp等命令,参照base.c中目录文件操 做的接口,再加上自己一点逻辑上的思想,是完全可以写出来的。 -------------------------------------------------------- 如何联系我: CSDN不支持自己评论自己,所以各位有问题,请发邮件到邮箱 moontalk@yeah.net。本人将尽快做出回复。前几日收到几个网友 的询问,都一一做了详细回复,在此,对他们的来信表示感谢! 也正是有了这样的来信,才促使我把两年的代码做了整理,对于之 前代码中的一些不合理之处,甚至是bug做了修改,才从新发了 这个新的版本。 另外,本人有很多基于base库的windowsC程序,是纯C的哦。包括 闹钟、农历日历、base64加密、3des加密,守护进程(类似于linux 下的crontab),还有一些简化windows操作的快捷程序等等,如果 需要哪个代码,邮箱联系我,我将为整个工作目录打包,附件发 给你。一来为初进C大门的新手提供参考,二来也希望和C高手们 共同切磋进步。 ---------------------------------------------------------- 关于该版本的base更新: 在之前的base中,一个函数Substring造成了很严重的内存泄露,所以 花了好几天的时间把所有的代码做了整理,新版的代码遵循以下几个 大的原则: 1、 分开h文件和c文件的职责,h文件负责定义数据接口和宏,对 外提供接口,c文件做具体实现。 2、 区分操作系统,为方便代码移植做铺垫,前几个版本都只能用 在windows下,现在又提供了linux环境的源代码,对于其中不 一样的地方,使用系统环境进行区分。 3、 减少malloc的操作次数,定义宏定义简化malloc等函数。 4、 对函数返回值进行检查,尤其是那种很重要的,比如fget、read等。 5、 对函数参数进行必要的const修饰。且增加参数的检查力度。
评论
    相关推荐
    • 最新仙镜传说服务器c语言源码
      最新的仙镜传说服务器C语言源码,这是日本最新在布的,数据库类型为文件型数据库。 这个源码相当的完整,只要编译一次后就可以运行了,但得用到客户端的两个文件一个是data.grf另一个是sdata.grf,大家都可以试试!...
    • 守护进程时间服务器C语言实现.rar
      守护进程时间服务器C语言实现,适合编程小白
    • 最新仙镜传说服务器C语言源码
      最新的仙镜传说服务器C语言源码,这是日本最新在布的,数据库类型为文件型数据库。 这个源码相当的完整,只要编译一次后就可以运行了,但得用到客户端的两个文件一个是data.grf另一个是sdata.grf,大家都可以试试!
    • http代理服务器C语言
      以前上TCP/IP课程时做的课程设计,很小的一个HTTP代理服务器,基于socket编程。VC6.0环境的。原创程序。 那时候还是新手,程序很简陋,不过好歹能用。 学校学习相关课程的学生可以参考下,当个课程作业没问题,老手...
    • 最新仙镜传说服务器C语言源码
      最新的仙镜传说服务器C语言源码,这是日本最新在布的,数据库类型为文件型数据库。这个源码相当的完整,只要编译一次后就可以运行了,但得用到客户端的两个文件一个是data.grf另一个是sdata.grf,大家都可以试试!我...
    • RTSP 服务器C语言
      RTSP是实时流媒体传输协议,服务器和客户端之间通过RTSP协议实现握手和认证过程,通过RTP协议传输视频数据包,本资源通过C语言实现了RTSP服务器的功能。
    • 最新仙镜传说服务器C语言源码.zip
      最新仙镜传说服务器C语言源码.zip为游戏源代码,作为开发游戏的一个很好DEMO
    • 最新仙镜传说服务器c语言源码.rar
      最新仙镜传说服务器c语言源码.......
    • web服务器 C语言
      一个用C语言编写的WEB服务器,用socket编程
    • C语言并发服务器
      C语言并发服务器,包括客户端和服务器端。