Rev 14772 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on Mar 10, 2015@author: amit'''from datetime import datefrom email import encodersfrom email.mime.base import MIMEBasefrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport MySQLdbimport datetimeimport smtplibimport xlwtDB_HOST = "localhost"DB_USER = "root"DB_PASSWORD = "shop2020"DB_NAME = "dtr"TMP_FILE = "/tmp/useractivationreport.xls"# KEY NAMESSENDER = "cnc.center@shop2020.in"PASSWORD = "5h0p2o2o"SUBJECT = "DTR User Activation report for " + date.today().isoformat()SMTP_SERVER = "smtp.gmail.com"SMTP_PORT = 587SEGMENTATION_QUERY = """SELECT id,email,first_name,mobile_number,mobile_verified,referrer,createdFROM users WHERE lower(referrer) not like 'emp%'"""USER_QUERY="""SELECT id,email,first_name,mobile_number,mobile_verified,referrer,createdFROM users WHERE (referrer IS NULL AND id > 350) OR lower(referrer) not like 'emp%'"""date_format = xlwt.XFStyle()date_format.num_format_str = 'yyyy/mm/dd'datetime_format = xlwt.XFStyle()datetime_format.num_format_str = 'yyyy/mm/dd HH:MM AM/PM'default_format = xlwt.XFStyle()def getDbConnection():return MySQLdb.connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)def generateActivationReport():selectSql = USER_QUERYconn = getDbConnection()try:# prepare a cursor object using cursor() methodcursor = conn.cursor()# Execute the SQL command# Fetch source id.cursor.execute(selectSql)result = cursor.fetchall()workbook = xlwt.Workbook()worksheet = workbook.add_sheet("User")boldStyle = xlwt.XFStyle()f = xlwt.Font()f.bold = TrueboldStyle.font = fcolumn = 0row = 0worksheet.write(row, 0, 'User Id', boldStyle)worksheet.write(row, 1, 'Email', boldStyle)worksheet.write(row, 2, 'Name', boldStyle)worksheet.write(row, 3, 'Mobile Number', boldStyle)worksheet.write(row, 4, 'Mobile Verified', boldStyle)worksheet.write(row, 5, 'Referrer', boldStyle)worksheet.write(row, 6, 'Created', boldStyle)for r in result:row += 1column = 0for data in r :worksheet.write(row, column, int(data) if type(data) is float else data, datetime_format if type(data) is datetime.datetime else default_format)column += 1workbook.save(TMP_FILE)sendmail(["manas.kapoor@shop2020.in",'amit.sirohi@saholic.com','shailesh.kumar@saholic.com'], "", TMP_FILE, SUBJECT)except:print "Could not create report"def sendmail(email, message, fileName, title):if email == "":returnmailServer = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)mailServer.ehlo()mailServer.starttls()mailServer.ehlo()# Create the container (outer) email message.msg = MIMEMultipart()msg['Subject'] = titlemsg.preamble = titlehtml_msg = MIMEText(message, 'html')msg.attach(html_msg)fileMsg = MIMEBase('application', 'vnd.ms-excel')fileMsg.set_payload(file(TMP_FILE).read())encoders.encode_base64(fileMsg)fileMsg.add_header('Content-Disposition', 'attachment;filename=' + fileName)msg.attach(fileMsg)# fileMsg1 = MIMEBase('application', 'vnd.ms-excel')# fileMsg1.set_payload(file("/root/snapdeal.csv" ).read())# encoders.encode_base64(fileMsg1)# fileMsg1.add_header('Content-Disposition', 'attachment;filename=Affiliate')# msg.attach(fileMsg1)MAILTO = ['manas.kapoor@saholic.com','amit.sirohi@saholic.com','shailesh.kumar@saholic.com']mailServer.login(SENDER, PASSWORD)mailServer.sendmail(PASSWORD, MAILTO, msg.as_string())def main():generateActivationReport()if __name__ == '__main__':main()