自動過濾郵箱日誌,併發送郵件給郵箱腳本,perl+shell

工作上需要給客戶發日誌,老手動很不爽,寫了這個腳本,又因爲機器上sendmail進程被其他perl腳本佔用,無奈下只能直接走perl的腳本發送郵件了。特此記錄如有人需要借鑑,請自便。

主程序shell

#!/bin/bash

mail="[email protected]"

mailhead=`echo "$mail" |awk -F"@" '{print $1}'`

mailtail=`echo "$mail" |awk -F"@" '{print $2}'`

mindate="20130218"

maxdate="20130418"

#cd /mnt/log/ent_new

#cd /mnt/log/ent_old

#cd /mnt/log/global

#cd /mnt/log/oversea

cd /mnt/log/zmail

ls www_authlog.201*|awk -v a=$mindate -v b=$maxdate -F"." '$2>a&&$2<b'|xargs  grep "$mailhead $mailtail"|awk -F":" '{print $2":"$3}' >>/getlog/log1.tmp

ls pop_authlog.201*|awk -v a=$mindate -v b=$maxdate -F"." '$2>a&&$2<b'|xargs  grep "$mailhead $mailtail"|awk -F":" '{print $2":"$3":"$4}' >>/getlog/log1.tmp

/var/eyou/sbin/ev /getlog/log1.tmp >/getlog/log.txt

/usr/bin/unix2dos -o /getlog/log.txt 

/usr/bin/zip /getlog/log.zip /getlog/log.txt

 

echo "$mail"|perl /getlog/sendmail.pl

 

/bin/rm -rf /getlog/log1.tmp

/bin/rm -rf /getlog/log.txt

/bin/rm -rf /getlog/log.zip

 

副程序pl

#!/usr/bin/perl 

#use strict;

use POSIX;

use Encode;

use Mail::Sender;

open my $DEBUG, ">> /getlog/mail.log" or die "Can't open the debug file: $!\n";

my $mail = <>;

my $sender = new Mail::Sender

{smtp => 'mail.xxxx.cn',

from => '[email protected]',

auth => 'LOGIN',

authid => '[email protected]',

authpwd => 'password',

on_errors => undef

} or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";

 

$sender->MailFile(

{

to => "$mail",

cc => '[email protected]',

subject =>"$mail mail log",

charset =>"gb2312",

msg => "$mail mail log",

file => "/getlog/log.zip",

debug => $DEBUG

}) or print $Mail::Sender::Error;

$sender ->Close()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章