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
}
##=================================================================##
## 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
Post a Comment