View and Send Email of Threat,Quarantine and Containment history in CSV format

Hi all,

Please refer below script to email Threat. Quarantine and Containment history in CSV format.

Edit parameters:
sendemail=1 ->Edit “sendemail=1” to send csv report in email or Edit “sendemail=0” to print the output in ITSM portal

Edit Email recipients and smtp details if sendemail=1 is set
emailto =[‘xyz@gmail.com’,‘pqr@gmail.com’]
emailfrom = “yyyyyy@gmail.com
password = “12345678”
smtpserver=‘smtp.gmail.com
port=587


#Enter 1 to send  csv report in email  #Enter 0 to  print the output in ITSM portal
sendemail=1

#Edit Email recipients and smtp details if you wish to email report
emailto =['xyz@gmail.com','pqr@gmail.com'] 
emailfrom = "yyyyy@gmail.com"
password = "12345678"
smtpserver='smtp.gmail.com'
port=587

import os
import sqlite3
import csv
if sendemail==1:
    def emailreport(emailto,emailfrom,fileToSend,password,smtpserver,port):
        import smtplib
        import mimetypes
        from email.mime.multipart import MIMEMultipart
        from email import encoders
        from email.message import Message
        from email.mime.audio import MIMEAudio
        from email.mime.base import MIMEBase
        from email.mime.image import MIMEImage
        from email.mime.text import MIMEText
        import os    
        msg = MIMEMultipart()
        msg["From"] = emailfrom
        msg["To"] = ",".join(emailto)
        msg["Subject"] = "Comodo Antivirus log reports in CSV"
        msg.preamble = "Comodo Antivirus log Reports in CSV"
        with open(fileToSend) as fp:
            record = MIMEBase('application', 'octet-stream')
            record.set_payload(fp.read())
            encoders.encode_base64(record)
            record.add_header('Content-Disposition', 'attachment',
            filename=os.path.basename(fileToSend))
            msg.attach(record)
        try:
            server = smtplib.SMTP(smtpserver,port)
            server.ehlo()
            server.starttls()
            server.login(emailfrom, password)
            server.sendmail(emailfrom, emailto, msg.as_string())
            server.quit()
            print("Email sent successfully")
        except Exception as E:
            print (E)


qurantined='SELECT Path,CommonInfoUserName FROM AvEvents where Action=1'
lqurantined='Select count(*) FROM AvEvents where Action=1'
lremoved='Select count(*) FROM AvEvents where Action=2'
ldetected='Select count(*) FROM AvEvents where Action=4'
removed='SELECT Path,CommonInfoUserName FROM AvEvents where Action=2'
detected='SELECT Path,CommonInfoUserName FROM AvEvents where Action=4'
virtual='SELECT Path,CommonInfoUserName FROM SbEvents  where Action=1'
lvirtual='Select count(*) FROM SbEvents  where Action=1'
blocked='SELECT Path,CommonInfoUserName FROM SbEvents  where Action=2'
lblocked='Select count(*) FROM SbEvents  where Action=2'
ignored='SELECt Path,CommonInfoUserName FROM SbEvents  where Action=3'
lignored='Select count(*) FROM SbEvents  where Action=3'

connect = sqlite3.connect(os.environ['PROGRAMDATA']+r"\Comodo\Firewall Pro\cislogs.sdb")
operation = connect.cursor()
fileToSend = os.environ['TEMP']+r'\ComodoAntiviruslogs.csv'

if sendemail==1:
    import csv
    with open(fileToSend, 'w') as csvfile:
        spamwriter= csv.writer(csvfile, delimiter=' ',quotechar=' ', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow("Qurantine History")    
        for row in operation.execute(lqurantined):
            out=tuple(row)
        if out[0]==0:
            csvfile.write('No Such History Data Available') 
            csvfile.write('
')
            csvfile.write("
")
        else:
            spamwriter.writerow("Path,Username")
            for row in  operation.execute(qurantined):    
                csvfile.write(str(row))
                csvfile.write('
')
                csvfile.write("
")            
        spamwriter= csv.writer(csvfile, delimiter=' ',quotechar=' ', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow("Threats removed")
        for row in operation.execute(lremoved):
            out=tuple(row)
        if out[0]==0:
            csvfile.write('No Such History Data Available') 
            csvfile.write('
')
            csvfile.write("
")
        else:
            spamwriter.writerow("Path,Username")
            for row in  operation.execute(removed):    
                csvfile.write(str(row))
                csvfile.write('
')
                csvfile.write("
")
        spamwriter= csv.writer(csvfile, delimiter=' ',quotechar=' ', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow("Threats Detected")
        for row in operation.execute(ldetected):
            out=tuple(row)
        if out[0]==0:
            csvfile.write('No Such History Data Available') 
            csvfile.write('
')
            csvfile.write("
")
        else:
            spamwriter.writerow("Path,Username")
            for row in  operation.execute(detected):    
                csvfile.write(str(row))
                csvfile.write('
')
                csvfile.write("
")
        spamwriter= csv.writer(csvfile, delimiter=' ',quotechar=' ', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow("Containment History")
        spamwriter.writerow("Run Virtually")
        for row in operation.execute(lvirtual):
            out=tuple(row)
        if out[0]==0:
            csvfile.write('No Such History Data Available') 
            csvfile.write('
')
            csvfile.write("
")
        else:
            spamwriter.writerow("Path,Username")
            for row in  operation.execute(virtual):    
                csvfile.write(str(row))
                csvfile.write('
')
                csvfile.write("
")
        spamwriter= csv.writer(csvfile, delimiter=' ',quotechar=' ', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow("Blocked applications by containment ")
        for row in operation.execute(lblocked):
            out=tuple(row)
        if out[0]==0:
            csvfile.write('No Such History Data Available') 
            csvfile.write('
')        
            csvfile.write("
")
        else:
            spamwriter.writerow("Path,Username")
            for row in  operation.execute(blocked):    
                csvfile.write(str(row))
                csvfile.write('
')
                csvfile.write("
")
        spamwriter= csv.writer(csvfile, delimiter=' ',quotechar=' ', quoting=csv.QUOTE_MINIMAL)
        spamwriter.writerow("Applications ignored by containment (Run Unrestriced) ")
        for row in operation.execute(lignored):
            out=tuple(row)
        if out[0]==0:
            csvfile.write('No Such History Data Available') 
            csvfile.write('
')
            csvfile.write("
")
        else:
            spamwriter.writerow("Path,Username")
            for row in  operation.execute(ignored):    
                csvfile.write(str(row))
                csvfile.write('
')
                csvfile.write("
")
    csvfile.close()
    emailreport(emailto,emailfrom,fileToSend,password,smtpserver,port)

if sendemail==0:       
    print("Qurantine History")    
    for row in operation.execute(lqurantined):
        out=tuple(row)
    if out[0]==0:
        print ('No Such History Data Available') 
        print ('
')        
    else:        
        for row in  operation.execute(qurantined):    
            print(str(row))            
    print("Threats removed")
    for row in operation.execute(lremoved):
        out=tuple(row)
    if out[0]==0:
        print('No Such History Data Available')         
    else:
        print("Path,Username")
        for row in  operation.execute(removed):    
            print(str(row))            
    print("Threats Detected")
    for row in operation.execute(ldetected):
        out=tuple(row)
    if out[0]==0:
        print('No Such History Data Available') 
        print('
')        
    else:
        print("Path,Username")
        for row in  operation.execute(detected):    
            print(str(row))            
    print("Containment History")
    print ("Run Virtually")
    for row in operation.execute(lvirtual):
        out=tuple(row)
    if out[0]==0:
        print('No Such History Data Available') 
        print('
')        
    else:
        print("Path,Username")
        for row in  operation.execute(virtual):    
            print(str(row))            
    print("Blocked applications by containment ")
    for row in operation.execute(lblocked):
        out=tuple(row)
    if out[0]==0:
        print('No Such History Data Available') 
        print('
')        

    else:
        print("Path,Username")
        for row in  operation.execute(blocked):    
            print(str(row))                        

    print("Applications ignored by containment (Run Unrestriced) ")
    for row in operation.execute(lignored):
        out=tuple(row)
    if out[0]==0:
        print('No Such History Data Available')     
    else:
        print("Path,Username")
        for row in  operation.execute(ignored):    
            print(str(row))








Set CSV separation format as comma ‘,’ for readability

20170301-View-and-Send-email-attachment-of-comodo-antivirus-log-history-in-CSV-format.json (12.1 KB)

Thanks kannan! Just what we wanted!!