| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | import smtplibimport tracebackimport osfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom email.mime.multipart import MIMEMultipartfrom email.message import EmailMessageimport codecsimport jinja2import codecsimport osimport datasetimport timedef gen_email(email,clientid,campaign):    db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/yodb?charset=utf8mb4')    fname=os.path.abspath(__file__)    elmts=fname.split(os.path.sep)    path2=os.path.sep.join(elmts[0:-1])    keysdir=path2+os.path.sep    print(keysdir)    templateLoader = jinja2.FileSystemLoader(searchpath=keysdir)    templateEnv = jinja2.Environment(loader=templateLoader)    TEMPLATE_FILE = 'test.tmpl'    template = templateEnv.get_template(TEMPLATE_FILE)    #SELECT distinct ts_word FROM trending_searches ORDER BY ts_date DESC limit 21;    cursor=db.query('SELECT distinct ts_word FROM trending_searches ORDER BY ts_date DESC limit 21;')    display={}    idx=1    for c in cursor:        display['a'+str(idx)]=c['ts_word']        idx+=1    display['client']=clientid    display['email']=email    display['campaign']=campaign    outputText = template.render(display=display)     fw=codecs.open('c:/tmp/final.html','w','utf-8')    fw.write(outputText)    fw.close()def send_email(campaign,email):    gmail_user = 'edm@choozmo.com'    gmail_password='wqdsyqwvppmubitv'    sent_from = gmail_user    #to = ['jared@choozmo.com','nina.huang@choozmo.com','ana@choozmo.com','ming@choozmo.com','mike@choozmo.com','andy@choozmo.com','hana@choozmo.com','stacy@choozmo.com','wen@choozmo.com','yukyo@choozmo.com','fxp87257@gmail.com','noodlesloves@gmail.com']    to = [email]    msg = MIMEMultipart()    msg['Subject'] = '['+campaign+'] 趨勢日報 | ChoozMo '    msg['From'] = 'edm@choozmo.com'    msg['To'] = email    msgAlternative = MIMEMultipart('alternative')    msg.attach(msgAlternative)    fr=codecs.open('c:/tmp/final.html','r','utf-8')    content=fr.read()    fr.close()    text = MIMEText(content,'html','utf-8')    msgAlternative.attach(text)    try:        server = smtplib.SMTP_SSL('smtp.gmail.com', 465)        server.ehlo()        server.login(gmail_user, gmail_password)        server.sendmail(sent_from, to,  msg.as_string())        server.close()        print ('Email sent!')    except:        traceback.print_exc()        print ('Something went wrong...')db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/cmm_test?charset=utf8mb4')#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='test';")#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='choozmo';")#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g2';")#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='zec';")#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='core_cust';")#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g4';")#cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g1';")cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g3';")for c in cursor:    clientid=c['id']    email=c['email']    campaign='2021-06-13'    gen_email(email,clientid,campaign)    send_email(campaign,email)    time.sleep(30)#clientid='1'#email='jeweiliang@gmail.com'
 |