曾经有一段时间我对邮件发送接收程序特别感兴趣,尤其是对于木马,觉得特别神秘,后来我才发现他们的运行原理。在这篇文章里,我想特别谈一下对于smtp和pop3的一些我的简单的观点,如果有不当的地方,还请大家多多指出,因为这还是我第一次在csdn发表文章。
很多书上都对smtp的使用有过介绍,不过那些都是很浅显的使用,对于smtp的邮箱验证功能根本只字不提,但事实恰恰是,很多比较常用的邮箱经常是需要通过验证的, 像163及sohu等,因为那些服务器为了防止垃圾邮件的泛滥,才不得不这样做,所以如果我们在使用smtp时,简单的设置postmessage的FromAddress,Fromname,subject,body等属性后,就调用sendmail方法的话,只能将邮件发往一些名不见经传的邮箱,因为那些服务器根本不需要身份验证,那么怎么样才可以发到像163的那样的比较常用的邮箱里呢?有两中方法,一种是在smtp编码过程中加入自己的用户名和密码(这里不提供实现代码,在www.dapha.net 网站上有源代码下载,不过是用vb编的,有兴趣可以看看)具体过程比较烦琐,这里介绍另外一种更简单的方法,可以在不需要通过身份验证的服务器申请一个帐号,启动这个帐号的邮件转发功能,这样就能轻易实现我们的目的。
另外我还想谈谈木马自动连线的问题。有些木马,客户端在搜寻服务端时,常采用的是穷举法,即一一列举所有在线机器,看看其端口有没有在监听。这种方法,对于局域网确实挺快,但是如果不在同一局域网里,这种方法就不那么管用了,有没有办法可以直接确定服务端的位置呢?有,那就是smtp和pop3控件的功能的扩展。我们可以在服务器端添加一个smtp控件,并在代码中添加获取本机ip地址的代码段,获取之后用smtp控件将ip地址及获取时间发送至邮箱服务器,并可以设定定时发送,这样可以确保服务端的邮件不会过时。在客户端添加一个pop3控件,这样可以从邮箱服务器取得所需邮件,并从邮件中将ip地址和时间分离出来,根据ip地址便轻而易举实现自动连接,比搜寻主机要快很多,避免走过弯路,这里提到木马,仅用与技术讨论,请勿用于非法途径。
以上是我个人平时总结出的观点,希望对大家的编程有所帮助,谢谢!
本文地址:http://com.8s8s.com/it/it5089.htm