jin5011 发表于 2018-8-30 12:13:55

利用perl模块发邮件

vim sendmail.pl  
#!/usr/bin/perl -w
  
use MIME::Lite;
  

  
sub perl_sendmail {
  
      my $mail_to=shift;
  
      #my $mail_to="$_";
  
      my $from=shift;
  
      #my $from = "$_";
  
      my $subject=shift;
  
      #my $subject = "$_";
  
      my $data=shift;
  
      #my $data = "$_";
  

  
      $sendmail = MIME::Lite->new(
  
                        From   => $from,
  
                        To       => $mail_to,
  
                        Subject=> $subject,
  
                        Data   => $data
  
                        );
  

  
      $sendmail->attr("content-type" => "text/html");
  
      $sendmail->send;
  
}
  
perl_sendmail(@ARGV);
  

  
vim databases.sh
  
#!/bin/bash
  

  
OP_MAILBOX="hello@qq.com,amos.lu@qq.com"
  
phone_lu=15800329316
  
phone_xia=15121132075
  
[ -d /tmp/db ] || mkdir /tmp/db
  

  

  

  
function database()
  
{
  
      local data_file vale num
  
      vale=60
  
      data_file="/tmp/php_db.log"
  
      while read line
  
      do
  
                num=`echo $line|awk -F'=' '{print $2}'`
  
                title=`echo $line|awk -F']' '{print $2}'|awk '{print $1}'`
  
                [ -f /tmp/db/$title ] && content=`cat /tmp/db/$title` && ret=`echo $content|awk -F'=' '{print $2}'`
  
                if [ "x$num" != "x" -a $num -lt $vale ]
  
                then
  
                        echo "$title=1" > /tmp/db/$title
  
                        sendmailx "$line 一小时检测一次,连续报警两次,请通知以下运维人员卢李明:$phone_lu夏志培:$phone_xia" "数据异常"
  
                elif [ "x$content" != "x" ]
  
                then
  
                        if [ $ret -eq 1 -a $num -gt $vale ]
  
                        then
  
                              echo "$title=0" > /tmp/db/$title
  
                              sendmailx "$line 这是恢复邮件,您可以安心休息了。" "数据恢复"
  
                        fi
  
                fi
  
      done < $data_file
  
}
  

  
function sendmailx()
  
{
  
      local mail_msg mail_from
  
      mail_msg=$1
  
      mail_title=$2
  
      mail_from="skymobi@sky-mobi.com"
  
      for mailbox in `echo $OP_MAILBOX|sed 's/,/ /g'`
  
      do
  
            /path/to/sendmail.pl "$mailbox" "$mail_from" "$mail_title" "$mail_msg"
  
            sleep 0.5
  
      done
  
}
  
database


页: [1]
查看完整版本: 利用perl模块发邮件