代码

#!/usr/bin/perl
use Net::SMTP;
use MIME::Base64;

################
# 自动签到脚本 #
################

$host = '10.182.131.153'; #SMTP服务器地址

###########################
#
# $host: smtp服务器
# $auth: 邮件账户
# $password: 邮件账户密码
# $to: 要发送的目标
# $mail_body: 邮件内容
#
###########################

sub send_mail {
my($host, $auth, $password, $to, $mail_body) = @_;
my $smtp = Net::SMTP->new(
Host => $host,
Hello => $host,
Timeout => 30,
Debug => 1
);

$smtp->auth(substr($auth, 0, index($auth, '@')), $password);
$smtp->mail($auth);
$smtp->to($to);
$smtp->bcc($auth);
$smtp->data();
$smtp->datasend("Content-Type:text/plain;charset=GB2312\n");
$smtp->datasend("Content-Transfer-Encoding:base64\n");
$smtp->datasend("From:$auth \n");
$smtp->datasend("To:$to \n");
$smtp->datasend("Subject:=?gb2312?B?".encode_base64($mail_body,'')."?=\n\n");
$smtp->datasend("\n");

$smtp->datasend(encode_base64($mail_body,'')." \n");
$smtp->dataend();
$smtp->quit;
}

#获取命令行参数
if(@ARGV < 1) {
$conf_file = './mailusers.conf'; #默认配置文件
}
else {
$conf_file = $ARGV[0]; #获取配置文件名
}

#打开配置文件和日志文件
open CONF_FILE, $conf_file or die "Open config file [$conf_file] failed! \n";
open LOG_FILE, '>>send.log' or die "Open send.log failed! $!\n";
while(<LOG_FILE>) {
chomp;
if($_ =~ /^#+/) {
next; #跳过注释行
}

@line = split /\s+/, $_;
if(@line != 4) {
next; #跳过空行
}

#发送邮件
send_mail($host, $line[0], $line[1], $line[2], $line[3]);
print LOG_FILE "[" . localtime() . "] send_mail($host, $line[0], $line[1], $line[2], $line[3]); \n";
}

close CONF_FILE;
close LOG_FILE;

转载于:https://www.cnblogs.com/mouse1/archive/2009/12/15/1624685.html

perl 发送邮件脚本相关推荐

  1. 用Perl发送邮件小例子

    据传,Perl发送邮件有很多方案,但我只会用Mail::Sender这种方式,也就只能简单谈谈这种方式. 在参考众多网页后,程序书写如下: #!/usr/bin/perl -w use Mail::S ...

  2. win服务器自动发邮件,windows关机前执行脚本设置与关机blat自动发送邮件脚本模板...

    windows关机前执行脚本设置与关机blat自动发送邮件脚本模板 发布时间:2020-07-25 02:21:24 来源:51CTO 阅读:3093 作者:nn1183 价值:实时掌握开关机记录: ...

  3. Shell使用sendemail发送邮件脚本

    原文地址:http://www.zixuephp.net/article-400.html shell发送邮件,这里要介绍的是sendemail工具,通过这个工具连接第三方的smtp服务器,进行邮件的 ...

  4. Perl/CGI脚本语言编程学习资料及开发工具下载大全

    Practical Extraction and Report Language Perl 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表.Perl借取了C.sed. ...

  5. python发送邮件脚本_python-发邮件脚本

    折腾nagios发邮件好几天,终于完成,我的系统环境是ubuntu12.04,安装postfix服务,先贴上脚本,如下: #!/usr/bin/env python #-*- coding:utf-8 ...

  6. python发邮件脚本详解_Python发送邮件脚本

    在一些场景中经常需要发送邮件, 像是持续集成和运维报警等. 而使用Python脚本能够很快捷方便得实现发送各种邮件的需求.这里就通过Python基于SMTP(Simple Mail Transfer ...

  7. python发邮件脚本_Python实现的简单发送邮件脚本分享

    近来有些东西需要监控报警发邮件,然后在网上找了点材料,自己写了一个简单发送邮件的脚本,主要就是运用python的smtplib模块,分享给大家看一下: #!/usr/bin/env python # ...

  8. Shell Perl Python 脚本语言介绍

    一.  Shell 文字操作系统与外部最主要的接口就叫做shell.shell是操作系统最外面的一层.shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系 ...

  9. python自动发送邮件脚本

    目录 需要开通smtp功能 脚本 需要开通smtp功能 这里举例子使用的163的邮箱,每个邮箱都是一样的,发件邮箱设置即可 163网易免费邮-你的专业电子邮局 脚本 # -*- coding:utf- ...

最新文章

  1. 解决Windows Installer的错误
  2. 多分类任务的混淆矩阵
  3. Mysql 数据库锁表的原因和解决方法
  4. 怎么提升软件测试质量,【软件测试】涨姿势,测试总监亲授如何做测试质量管理...
  5. mina 粘包、多包和少包的解决方法
  6. 怎么做蒙特卡洛计算npv_计算机一级:这该死的“进制转换”,这种题到底怎么做?...
  7. JS:1.3,函数(function)
  8. Windows环境下smarty安装简明教程
  9. C#通过VS连接MySQL数据库实现增删改查基本操作
  10. mybatis学习(24):分页2 多参数传递(使用注解)
  11. 罗斯蒙特电磁流量计8723说明书_罗斯蒙特8732E电磁流量计故障原因及解决办法!...
  12. 在c语言中文件的指针是什么,C语言中文件描述符和文件指针的本质区别
  13. 语音技术(百度语音)开发 - 第一篇
  14. html 最小长度单位,html见长度单位尺寸单�?CSS布局HTML
  15. 用Angular制作单页应用视图切换动画
  16. python读取log文件_python之文件的读写(文本文档,log文件)
  17. python opencv对颗粒的计数与计算空洞率
  18. 深度掌握bin、hex、axf和elf文件格式
  19. 数值分析课程主要学习内容总结
  20. 手游沙巴克传奇当前服务器维护,《沙巴克传奇》12月18日安卓、IOS维护公告

热门文章

  1. 2021 年不可错过的 40 篇 AI 论文,你都读过吗?
  2. 骆利群院士最新Science综述:神经环路架构,激发新的AI
  3. 普华永道:AI规模化应用,基础知识先行
  4. 回顾2018,正在改变未来游戏规则的技术
  5. 业界 |「多巴胺」来袭!谷歌推出新型强化学习框架Dopamine
  6. 麦肯锡报告:传统车企正面临出行的数字化颠覆
  7. 年近 40,我在互联网大厂做高龄“大头兵”
  8. ​计算产业如何加速突破?鲲鹏开发者技术沙龙带来新答案
  9. 10 年 bloger 教你如何优雅玩转博客!
  10. 关于Input内容改变的触发事件