Blastmail with shell script version 1.0

* JUDUL       : BLASTMAIL via postfix dan html format sebagai body   
* created by   : YUDI ARIESTYA PUTRANTO                                       
* email           : yudi.ariestya@live.com                                                       
* lastcreate     : 29 Januari 2013                                                            
* Version        : 1.0                                                                                       

====================================================================
*** P E N T I N G  ***
1. lakukan penyesuaian path terlebih dahulu ya
2. setting DNS anda sampai MX dan DNS nya berfungsi dengan baik
3. install postfix dan lakukan penyesuaian standard
4. klo di copas tolong di cantumkan alamat blog saya ya, biar saya juga terkenal
5. cek versi selanjutnya blastmail version.3.0
====================================================================

homedir = /opt/blastmail
A. FOLDER
1. attach = folder ini berisi attachment yang akan di ikirim
2. body = folder ini berisi body newsletter
3. log = folder kumpulan log sending dan jumlah email yang dikirim
4. recipient = *.csv adalah format standard untuk mengirim email, dalam format email address ini, ada beberapa syarat yaitu.
        1. delimeter menggunakan spasi ( )
        2. isi harus menjadi 1 paragraph
        3. tidak boleh ada tanda baca apapun (!#$%^&<>?/\~%*) dan lain2
5. senditems = berisi archive file2 yang telah di kirim dan merubah namanya menjadi "newsletter-date-category.log"
6. temp = tempat untuk file dan folder cadangan

B. FILE
    1. debug.sh = berisi perintah untuk mengirimkan jumlah recipient ke penerima debug
        #!/bin/bash
        for MAILTO in `cat /opt/blastmail/recipient/debug`
        do
        NOW=$(date +"%Y-%m-%d")
        hitung=$(cat /opt/blastmail/recipient/penerima.asli | sed 's/ /\n/g' | wc -l)
        export FROM="cs@karir.com"
        export SUBJECT="Newsletter Report $NOW (debug mode)"
        (
         echo "To: $MAILTO"
         echo "From: $FROM"
         echo "Subject: $SUBJECT"
         echo Dear Sir/Madam,
         echo How Days, we want to inform you that, the newsletter mail will be sent as $hitung emails
         echo
         echo
         echo
         echo Thank You
         echo Administrator
          )| /usr/sbin/sendmail  -t
        done
        echo "Email debug report sudah dikirim, terima kasih"; date

       
    2. genlog.sh = berisi perintah untuk melakukan pencatatan setiap email yang dikirim dan jumlahnya
        #!/bin/bash
        NOW=$(date +"%Y-%m-%d")
        #NOW=$(date +"%F")
        LOGFILE="/opt/blastmail/log/log-$NOW.log"
        date +"Status email = terkirim : %b %d %H:%M:%S %Y"  >> /opt/blastmail/log/log-$NOW.log
        hitung=$(cat /opt/blastmail/log/log-$NOW.log|grep "Status email"|wc -l)
        echo Total = $hitung Email >> /opt/blastmail/log/log-$NOW.log
        echo Total yang terkirim adalah $hitung Email
       
       
    3. kirimdebug.sh = berisi perintah untuk mengirim email debug ke penerima debug
        #!/bin/bash
        for MAILTO in `cat /opt/blastmail/recipient/debug`
        do
        export FROM="cs@karir.com"
        export SUBJECT="sebarkan pada dunia kalau yudi emang keren (debug mode)"
        export BODY="/opt/blastmail/body/*.html"
        #export DEBUG="/opt/blastmail/debug.sh"
        (
         echo "To: $MAILTO"
         echo "From: $FROM"
         echo "Subject: $SUBJECT"
         echo "MIME-Version: 1.0"
         echo 'Content-Type: multipart/mixed; boundary="-q1w2e3r4t5"'
         echo
         echo '---q1w2e3r4t5'
         echo "Content-Type: text/html"
         echo "Content-Disposition: inline"
         cat $BODY
         echo
         echo '---q1w2e3r4t5--'
         ) | /usr/sbin/sendmail  -t
        done
        echo "Email telah dikirim, terima kasih"; date
        $DEBUG

       
    4. kirim.sh = adalah main program untuk mengirim email newsletter dan mengarsipkan file body dan recipient menjadi format "newsletter-date-category.log"
        #!/bin/bash
        for MAILTO in `cat /opt/blastmail/recipient/*.csv`
        do
        export FROM="cs@karir.com"
        export SUBJECT="sebarkan pada dunia kalau yudi emang keren"
        export BODY="/opt/blastmail/body/*.html"
        export GENLOG="/opt/blastmail/genlog.sh"
        export REPORT="/opt/blastmail/report.sh"
        (
         echo "To: $MAILTO"
         echo "From: $FROM"
         echo "Subject: $SUBJECT"
         echo "MIME-Version: 1.0"
         echo 'Content-Type: multipart/mixed; boundary="-q1w2e3r4t5"'
         echo
         echo '---q1w2e3r4t5'
         echo "Content-Type: text/html"
         echo "Content-Disposition: inline"
         cat $BODY
         echo
         echo '---q1w2e3r4t5--'
         $GENLOG
        ) | /usr/sbin/sendmail  -t
        done
        echo "Email telah dikirim, terima kasih"; date
         $REPORT

        #remove template
        NOW=$(date +"%Y-%m-%d")
        mv /opt/blastmail/body/*.html /opt/blastmail/senditems/newsletter-$NOW-body.html
        mv /opt/blastmail/recipient/*.csv /opt/blastmail/senditems/newsletter-$NOW-recipient.csv

    5. report.sh = berisi perintah untuk mengirimkan email summary email terkirim
        #!/bin/bash
        for MAILTO in `cat /opt/blastmail/recipient/penerima.debug`
        do
        NOW=$(date +"%Y-%m-%d")
        NOW=$(date +"%F")
        hitung=$(cat /opt//blastmail/log/log-$NOW.log|grep "Status email"| wc -l)
        export FROM="cs@karir.com"
        export SUBJECT="Newsletter Report $NOW"
        (
         echo "To: $MAILTO"
         echo "From: $FROM"
         echo "Subject: $SUBJECT"
         echo Dear Sir/Madam,
         echo How Days, we want to inform you that, the newsletter mail has been sent.
         echo "It's has been send as many as $hitung emails"
         echo
         echo
         echo Thank You
         echo Administrator
        )| /usr/sbin/sendmail  -t
        done
        echo "Email Report telah dikirim, terima kasih"; date

C. CARA MENGGUNAKAN
    1. edit file kirim.sh
    2. rubah subject seperti yang di inginkan => save
    3. masukkan file *.csv yang berisi alamat email penerima > upload file *.csv ke folder /opt/blastmail/recipient
    4. masukkan file *.debug yang berisi alamat email penerima debug mode > upload file *.debug ke folder /opt/blastmail/recipient (format file sama dengan file *.csv)
    5. masukkan file *.html sebagai body email > upload file *.html ke folder /opt/blastmail/body
    6. eksekusi file kirimdebug.sh untuk prelaunch, jika sudah yakin
    7. eksekusi file kirim.sh
    8. tunggu kiriman email report dan debug mode nya


d. CONTOH LOG
    /opt/blastmail/log
    ....
    Status email = terkirim : Jan 29 11:15:03 2013
    Total = 44 Email
       
SEKIAN
yudi.ariestya@live.com

Comments

Popular posts from this blog

Configure Open Smtp google with Postfix

membuat random password di linux

ISCSI