用per实现l自动发送邮件

最近在做自动化测试环境的自动部署,其他都很顺利,但是同事反应说我们并不知道你是否安装成功,而且也不知道你安装的最新版本是什么,不是很方便,所以我就想试着用perl来写一个自动发送邮件的脚本,但最新的build安装成功的时候,则发一封邮件通知测试人员,这样就全程自动化了。

哈哈,底下是本人的实现。主要是通过perl提供的Net::Smtp包来写的。
  1. #! /usr/bin/perl  -w

  2. use Net::SMTP;
  3. use Authen::SASL;//这个需要自己安装 (ppm install Authen::SASL),对加密的邮件服务器需要这句。

  4. sub send_mail{
  5.     my($to,$from,$subject,@body)=@_;
  6.     my $host="smtp.163.net";#邮件服务器地址
  7.     my $smtp=Net::SMTP->new(
  8.         Host    =>  $host,
  9.         Hello   =>  $host,
  10.         Timeout =>  30,
  11.         Debug   =>  1
  12.     );
  13.     #$smtp->auth('username', 'password');对于加密的smtp服务器需要这行,否则不需要
  14.     die "Could not open connection: $!" if (!defined $smtp);
  15.     $smtp->mail($from);#发送者
  16.     $smtp->to($to);#接受者
  17.     $smtp->data();#数据发送开始标志
  18.     $smtp->datasend("Content-Type:text/plain;charset=GB2312/n");#表示发送数据的报头部分
  19.     $smtp->datasend("From:$from/n");
  20.     $smtp->datasend("Subject:$subject/n");
  21.     $smtp->datasend("/n");
  22.     foreach(@body) {
  23.         $smtp->datasend("$_/n");#发送数据
  24.     }
  25.     $smtp->dataend();#发送结束标志
  26.     $smtp->quit;
  27. }
  28. send_mail("zhtsuc","zhtsuc","test",qw(hello world));
上面需要注意的就是邮件的发送者和接收者参数只需要的是用户名,而并不是你的邮箱全名,这个非常重要,不然会发送失败。

但有个例外,就是我在用qq邮箱测试的时候发现接受者的信息必须给全名,不知道问什么他们违反这个规则,如果提示说接受者错误,那就试一试这样修改。

这种自动化脚本在自动化环境中非常有用,可以极大的提高效率。
所以很推荐这样做。:-D。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值