Linux下自动发送邮件程序

    近期由于项目需要,在学校的实验室里跑实验,自己呆在寝室里,实验需要跑好几天,每次去实验室看都很不方便,于是想做个一个小程序,等实验结果出来后自动发送到邮箱,其实linux本身就有mail命令可以发送,孤陋寡闻,等编完程序之后才知道,不过也算是个锻炼。

    该程序的开发环境是:ubuntu10.04(其实真实运行环境是在arch linux下),anjuta,g++4.4.3。

    自动发送邮件的本质其实就是socket交互,发送一系列验证信息、邮件信息等。流程大致如下:

    1. 初始化socket,包括设置邮件服务器地址和端口;

    2. 连接至邮件服务器,获取欢迎信息;

    3. 发送验证消息,包括EHLO、AUTH LOGIN、用户名和密码等,要注意的是,用户名和密码必须经过base64编码,这个linux系统本身就带了这个工具;

    4. 发送标题和正文,需要注意编码。

    整个过程中需要注意的是宽字符与ASCII码之间的转换,因为诸如邮件内容可能是宽字符的,而socket函数,比如send之类的所用的buffer则是char 的指针或数组。

    这个程序是从名为email.conf配置文件中读取配置信息,具体的配置信息如下:

    dst=xxx@xxx.com

    src=yyy@yyy.com

    svr=smtp.xxx.com

    prt=25

    psd=123456789

    tit=邮件标题

    dat=这是linux测试邮件。

 

   例如A要给B发邮件,那么"dst="跟的是B的邮箱地址,即目标邮箱;"src="跟的是A的地址,即发送者的地址;"psd="是A的邮箱密码;"svr="和"prt="分别是邮件发送服务器和端口,例如:smtp.163.com和25号端口;"til="是标题;"dat="是正文。请注意,上述提到的前缀,如"dst=","prt="等是不可更改的,也不要有空格,后面的内容按需填充。

    邮件的发送信息最终都会记录在info.log文件里。

    邮件发送的功能都集中在CAutoMail这个类里,方便集成至其他应用。

 

    具体源代码参看链接,顺便说一句,该死的CSDN什么时候才能开通附件上传功能?

    http://d.download.csdn.net/down/3005870/redeg

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值