Sendblast Version 5

#!/bin/bash
##=================================================================##
## file ini berisi perintah untuk mengirimkan email          
## File Name    : BETAsendblast.sh                  
## Created By   : Yudi Ariestya Putranto                          
## email            : yudi.ariestya@live.com                          
## Version        : 5.1                           
## Date             : September 2014                                  
## Lihat Readme untuk penggunaan lengkap nya              
##=================================================================##

##*** JANGAN LUPA RUBAH RECIPIENT NYA BRO ##****
source /opt/blastmail/.comvar
source /opt/blastmail/.authblast
echo $$ > "$DIR_HOME/pid"
BACKUP=$4
PENERIMA=$3
SUBJECT=$2
PARAMETER=$1

GENLOG ()
   {
   HIT_STAT=$(cat $DIR_CONT/counter.log|grep "Status email"|wc -l)
   date +"Status email = terkirim : %b %d %H:%M:%S %Y"  >> $DIR_CONT/counter.log
   echo Total = $HIT_STAT Email >> $DIR_CONT/counter.log
   }

REPORT ()
   {
    HIT_CON=$(cat $DIR_CONT/counter.log|grep "Status email"|wc -l)
    ST_DT=$(cat $DIR_CONT/counter.log | head -n1 | cut -c 27-46)
    ST_DT2=$(cat $DIR_CONT/counter.log | tail -2 | head -n1 | cut -c 27-46)
    SUB_REP=$(cat /opt/blastmail/subject )
    for MAILTO in `cat $DIR_RCPT/$PENERIMA`
    do
        export FROM="cs@karir.com"
        export SUBJECT="Newsletter Report "
        (
             echo "To: $MAILTO"
             echo "From: $FROM"
             echo "Subject: $SUBJECT"
             echo
             echo "Subject = $SUB_REP"
             echo "Start date = $ST_DT"
             echo "End date = $ST_DT2"
             echo "Newsletter counters =  $HIT_CON emails"
             echo
             echo
             echo Thank You
             echo Administrator
        )    | /usr/sbin/sendmail -t
    done
   }


SEND ()
   {
        ## JANGAN RUBAH BAGIAN INI, KARENA SUDAH DEFAULT ##

        for MAILTO in `cat $DIR_RCPT/*.csv`
        do
                export FROM="Customer Service karir.com <cs@karir.com>"
                export BODY="$DIR_BODY/*.html"
        export RPLT="cs@karir.com"             
         (  
                 echo "To: $MAILTO"
                 echo "From: $FROM"
         echo "Reply-to: $RPLT"
                 echo "Subject: $SUBJECT"
                 echo "MIME-Version: 1.0"
                 echo "Content-Type: text/html "
         echo "Content-Transfer-Encoding: 8bit"
                 echo "Content-Disposition: inline"
                 cat $BODY
                 echo
                ) | /usr/sbin/sendmail -t
                 GENLOG
        done
         echo $SUBJECT > /opt/blastmail/subject
   }

DEBUG ()
{
    for MAILTO in `cat $DIR_RCPT/$PENERIMA`
    do
    NOW=$(date +"%Y%m%d")
    hitung=$(cat $DIR_RCPT/*.csv | sed 's/ /\n/g' | wc -l)
        export FROM="cs@karir.com"
        export SUBJECTED="Newsletter Report $NOW (D)"
        (
         echo "To: $MAILTO"
         echo "From: $FROM"
         echo "Subject: $SUBJECTED"
         echo "SUBJECT = " $SUBJECT
     echo "TOTAL = " $hitung emails
         echo
         echo
         echo Thank You
         echo Administrator
          )| /usr/sbin/sendmail -t
    done
        echo "Email debug report sudah dikirim, terima kasih"; date
}

SENDDEBUG ()
{
## JANGAN RUBAH BAGIAN INI, KARENA SUDAH DEFAULT ##

    for MAILTO in `cat $DIR_RCPT/$PENERIMA`
        do
        hitung2=$(cat $DIR_RCPT/*.csv | sed 's/ /\n/g' | wc -l)
        export FROM="Customer Service karir.com <cs@karir.com>"   
        export BODY="$DIR_BODY/*.html"  
        (
         echo "To: $MAILTO"
         echo "From: $FROM"
         echo "Subject: $SUBJECT (D)"
                 echo "MIME-Version: 1.0"
                 echo "Content-Type: text/html "
                 echo "Content-Transfer-Encoding: 8bit"
                 echo "Content-Disposition: inline"
         cat $BODY              
        ) | /usr/sbin/sendmail -t
        done

    echo $SUBJECT > /opt/blastmail/subject
    echo "Email Uji Coba Sudah Dikirim, ada $hitung2 recipient"
}

GET_DATA ()
{
mysql -h $HOSTS -u $usr -p"$pas" < $DIR_QUERY/*.query | awk 'NR!=1 {print $1}' > $DIR_QUERY/$NOW-blastmail.csv
}
#********======#################********======#################********======#################
MNTNC_DATA ()
{
   if [ -z "$BACKUP" ];then
         exit 1 > /dev/null 2>&1 &
   elif [ $BACKUP -eq 1 ]; then
   #    echo hapus data aja
        DEL_CONTENT
   elif [ $BACKUP -eq 2 ];then
   #    echo data di backup
        ARCHIVE_DATA
   elif [ $BACKUP -eq 3 ];then
   #    echo data di pindahkan
        MV_CONTENT
   elif [ $BACKUP -le 4 ];then
        ERROR_PARAM
else
         exit 1 > /dev/null 2>&1 &
fi
}

PARAM ()
{
if [ -z $PARAMETER ];then
ERROR_PARAM
    elif [ $PARAMETER = "-k" ] && [ -z $SUBJECT ]; then
         KILL_PROS
    elif [ $PARAMETER = "-v" ] && [ -z $SUBJECT ]; then
              echo "Blastmail with Shell Script Version $VER "
    elif [ $PARAMETER = "-i" ] && [ -z $SUBJECT ]; then
        HIT_RECP=$(cat $DIR_RCPT/*.csv | sed 's/ /\n/g' | wc -l)
        echo jumlah penerima adalah $HIT_RECP
    elif [ $PARAMETER = "-help" ] && [ -z $SUBJECT ]; then
        cat $DIR_HOME/help | more
     elif [ $PARAMETER = "-s" ] && [ -z $SUBJECT ]; then
        CEK_STATUS
    elif [ $PARAMETER = "-d" ] && [ ! -z $PENERIMA ]; then
        clear; CEK_BODY; CEK_CSV; SENDDEBUG; DEBUG; MNTNC_DATA
    elif [ $PARAMETER = "-D" ] && [ ! -z $PENERIMA ]; then
        clear; GET_DATA; CEK_BODY; CEK_CSV; CEK_QUERY; SENDDEBUG; DEBUG
    elif [ $PARAMETER = "-N" ] && [ ! -z $PENERIMA ] && [ ! -z $BACKUP ]; then
        GET_DATA;CEK_CSV;CEK_BODY; CLEAR_LOGS; SEND; REPORT
        elif [ $PARAMETER = "-c" ] && [ ! -z $PENERIMA ] && [ ! -z $BACKUP ]; then #Not Tested
                CEK_CSV;CEK_BODY; CON_PROS; SEND; REPORT
    elif [ $PARAMETER = "-n" ] && [ ! -z $PENERIMA ] && [ ! -z $BACKUP ]; then
        CEK_CSV; CEK_BODY; CLEAR_LOGS; SEND; REPORT
              else
             ERROR_PARAM
fi
}

PARAM

ini untuk .comvar
#!/bin/bash
##=================================================================##
## file ini berisi perintah untuk mengirimkan email               
## File Name    : .comvar                                       
## Created By   : Yudi Ariestya Putranto                          
## email            : yudi.ariestya@live.com                          
## Date             : September 2014                                  
## Lihat Readme untuk penggunaan lengkap nya                      
##=================================================================##

VER="5.1"
NOW=$(date +"%Y%m%d")
export DIR_HOME="/opt/blastmail"
export DIR_RCPT="/opt/blastmail/recipient"
export DIR_BODY="/opt/blastmail/body"
export DIR_CONT="/opt/blastmail/log"
export DIR_SEND="/opt/blastmail/senditems"

DEL_CONTENT ()
{
rm -rf $DIR_BODY/*.html
rm -rf $DIR_RCPT/*.csv 
}

MV_CONTENT ()
{
mv $DIR_BODY/*.html $DIR_SEND/newsletter-body.html
mv $DIR_RCPT/*.csv  $DIR_SEND/newsletter-recipient.csv
}

KILL_PROS ()
{
CEK_KP=$(ps aux | grep sendblast |grep -v grep |wc -l)
if [ $CEK_KP -gt 2 ]; then
   kill -9 `ps aux | grep sendblast |grep -v grep |awk '{print $2}'`
       else
           echo "Error - tidak ada proses "
fi
}

CEK_STATUS ()
{
stat=$(ps aux | grep $0 | grep -v grep| wc -l)
if [ $stat -ne 0 ]; then
   echo "status stoped"
      else
          echo "status running"
fi
}

ERROR_PARAM ()
{
clear
echo "General Error Messages"
echo "Error: invalid $* option -- "
echo "Try Help With $0 -help"
echo
exit 0
}

function CEK_CSV
{
 HITCSV=$(find $DIR_RCPT/ -name *.csv | wc -l)
 if [ $HITCSV -lt 1 ] || [ $HITCSV -gt 1 ]; then
 echo "Error -- Duplicate or Empty File Recipient  "
 echo "Try Help With --- $0 -help"
 exit 1
 fi
}

function CEK_BODY
{
 HITBODY=$(find $DIR_BODY/ -name *.html | wc -l)
 if [ $HITBODY -lt 1 ] || [ $HITBODY -gt 1 ]; then
 echo "Error -- Duplicate or Empty File Body html  "
 echo "Please Use Help For Details --- $0 -help"
 exit 1
 fi
}

function CEK_QUERY
{
 HITQUERY=$(find $DIR_RCPT/ -name *.query | wc -l)
 if [ $HITQUERY -lt 1 ] || [ $HITQUERY -gt 1 ]; then
 echo "Error -- Duplicate or Empty File QUERY  "
 echo "Please Use Help For Details --- $0 -help"
 exit 1
 fi
}

CLEAR_LOGS ()
{
rm -f /var/log/maillog
/etc/init.d/rsyslog restart > /dev/null 2>&1&
sleep 1
/usr/sbin/postsuper -d ALL > /dev/null 2>&1&
sleep 1

}
CON_PROS ()
{
if [ -s $DIR_CONT/counter.log ];
   then
    echo "Melanjutkan Pengiriman"
   else
    echo "Maaf Pengiriman Tidak Dilanjutkan"
    exit 0
fi

}


function ARCHIVE_DATA
{
mv $DIR_BODY/*.html $DIR_SEND/newsletter-body.html
mv $DIR_RCPT/*.csv  $DIR_SEND/newsletter-recipient.csv
cd $DIR_SEND/; ./rotate.sh 7 newsletter-body.html newsletter-recipient.csv
cd $DIR_CONT ; ./rotate.sh 7 counter.log
if [ -f $DIR_RCPT/*.query ];then
     mv $DIR_RCPT/*.query  $DIR_SEND/newsletter-query.query
         cd $DIR_SEND/; ./rotate.sh 7 newsletter-query.query
        else
        exit 0
fi
}

Comments

Popular posts from this blog

Configure Open Smtp google with Postfix

membuat random password di linux

ISCSI