由于公司目前采用的自建邮件系统部署在内部机房,在网络链路上与国外,以及联通等网络存在着通讯的稳定性问题。
因此,随着企业邮箱使用的越来越频繁,这类问题反应越来越大,主要是国外出差的员工访问不了公司邮件系统,以及与其他公司通信时出现的邮件延迟甚至丢失情况。
因此,为了排除企业邮箱软件本身存在的BUG等造成的影响,特考虑进行一次大量的邮件交互测试,来确定软件本身是否存在问题。
在linux下有很多办法可以实现,比如用Shell调用邮件本身的命令行指令等,但最好还是通过客户端的方式来实现,因为这种大量的测试行为会被其他邮箱认为是垃圾邮件行为的,把邮件服务器IP给纳入黑名单可不是好玩的。
后来,Cluster群里的好兄弟,UCWEB的罗学,给我共享了一个Perl的脚本,很简单,但是也很好用。利用这个脚本我完成了这样的一个测试工作,顺便提一下,结果很理想,呵呵,网易和搜狐成功接收1000封邮件,一封没落下(把发送邮件的地址加到白名单);而通过网易往回来发的时候到215封时测试机IP就被纳入黑名单了,不过这215封我们也全部成功接收了。
废话不多说了,进入正题:
首先,
通过root用户登录,执行
cpan
进入以后,再执行
install MIME::lite
install Authen::SASL
这两个包,每个包大概要等个10来分钟的样子才会完全下载并安装好。
脚本内容:
#!/usr/bin/perl -wuse strict;use MIME::lite;use MIME::Base64;use Authen::SASL;foreach my $a ( 1 .. 1000 ) { sleep 10; my $from = '[email protected]'; my $passwd = 'password'; my $to = '[email protected]'; my $messages = $a . ":" . "Hello Rainbow!"; my $msg = MIME::lite->new( From => $from,To => $to,Cc => '[email protected]',Subject => $a . ":" . 'Hello Rainbow!',Type => 'TEXT',Data => $messages,); MIME::lite->send('smtp','smtp.domain.com',DeBUG =>'1',AuthUser=>$from,AuthPass=>$passwd,); $msg->send;}转自: http://heylinux.com/archives/390.html 总结
以上是内存溢出为你收集整理的通过Perl脚本实现邮件客户端进行邮件交互测试全部内容,希望文章能够帮你解决通过Perl脚本实现邮件客户端进行邮件交互测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)