Perl: 获取新包、发邮件、调用其他程序
Perl: 获取新包、发邮件、调用其他程序
按小刁的意思,首先把昨天的检测脚本改成带有复位功能的,然后把报警提示以邮件方式发送到指定的邮箱。 --------------------------------------------------------------------------------------------------------------------------------------- http://lvdbing.blog.163.com/blog/static/55801529200832111630600/?(这里也说明了如何用perl来发送邮件,清参照网页) ? 使用Net::SMTP_auth发邮件,首先要先安装Net::SMTP_auth模块。 1. Windows Operating System:如果是在windows操作系统使用的ActivePerl的话,则进入ActivePerl的安装目录的可执行程序目录,也就是bin目录。(例如:C:/Perl/bin)执行命令ppm-shell ,(PPM:Perl Package Manager Perl包管理器),然后执行命令: C:/Perl/bin>ppm-shell 2. Linux Operating System:如果是在linux操作系统使用Perl的话,则使用命令cpan后面跟要安装的模块就可以了。(如果是第一次使用cpan的话,会要求先配置cpan的一些信息,一直按默认的设置就可以了)。 ?[root@lvdbing.net ~]#?cpan Net::SMTP_auth PS: 网页里面提到的的确可以发送邮件,但是发送中文时会出现乱码;所以又到网上找到了解决方案,以下这个是可行的解决方案。 我们经常发送中文的电子邮件,而电子邮件的编码写web不大一样。我们一般用base64的编码来处理邮件头中非ascii字符。而现在UTF-8是web上最通用的编码。
其中=?UTF-8?B?为前缀,?=为后缀,B表示Base64编码。在邮件头的标题中,必须先用utf-8编码,然后再用base64编码,而邮件体就可以直接采用UTF-8的编码。
http://www.belltoy.net/chinese-in-email.html ? --------------------------------------------------------------------------------------------------------------------------------------- ? ??Perl调用其他程序方法 1. system(”com?mand”);? 使用该命令将开启一个子进程执行引号中的命令,父进程将等待子进程结束并继续执行下面的代码。 2. exec(”command”);? 3. `command`;? 4. open LIST “ls -l|”;? 5. defined(my $pid=fork) or die “Can not fork: $!/n”;?unless ($pid) {?exec (”date”);?}?waitpid ($pid,0);?使用fork将会开启子进程与父进程同时执行之后的代码,其中父进程中fork会返回一个非零的数,而子进程中将返回零。?上面的代码完成和system(”date”)相同的功能。比起system单纯地调用外部命令,fork可以完成更加复杂的进程操作。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |