背景介绍:
本人之前就职的公司网络与外界完全封闭, 公司配发的是台式电脑, 在有突发状况时即使很小的事在家里也束手无策只能到跑到公司去解决. 故开发出该小工具方便在家中简单干一些工作.
主要思路:
公司邮箱系统跟外界是相通的, 故可以通过邮箱进行命令的发送及返回. 由于公司邮箱使用的是MSExchange服务,故无法使用POP3进行邮件的监控. 于是想了一个折中的办法, 使用perl对outlook邮件进行读取然后选取其中有用命令进行执行, 执行完成后再控制outlook返回执行结果.代码如下:
use strict;
use lib qw(lib);
use Mail::Outlook; #该lib可在CPAN里获得
my $mail = new Mail::Outlook();
die "Cannot create mail object\n" unless $mail;
my $folder = $mail->folder('Inbox');
die "Cannot create folder object\n" unless $folder;
my $message = $folder->last;
my $last_subject = $message->Subject();
print "from $last_subject";
if($last_subject =~ /S***** control/)
{
$_ = $message->Body();
if(/Action:/i)
{
s/Action://;
my $send_inf = `$_`;
my $message_send = $mail->create();
die "Cannot create message object\n" unless $message;
$message_send->To('***********@********.com');
$message_send->Body($send_inf);
$message_send->XHeader('X-Header2','That');
$message_send->Subject('aotu reply');
my $status = $message_send->display;
print STDERR "message status was [$status]\n";
my $ret = $message_send->send();
print "send $send_inf $ret"
}
elsif(/getFile:/i)
{
s/getFile:/i;
}
主要实现功能:
电脑远程命令执行
电脑内文件远程取得