1
0

send_edm.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import smtplib
  2. import traceback
  3. import os
  4. import datetime
  5. from email.mime.text import MIMEText
  6. from email.mime.image import MIMEImage
  7. from email.mime.multipart import MIMEMultipart
  8. from email.message import EmailMessage
  9. import codecs
  10. import jinja2
  11. import codecs
  12. import os
  13. import dataset
  14. import time
  15. todaystr = str(datetime.date.today())
  16. def gen_email(email,clientid,campaign):
  17. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/yodb?charset=utf8mb4')
  18. fname=os.path.abspath(__file__)
  19. elmts=fname.split(os.path.sep)
  20. path2=os.path.sep.join(elmts[0:-1])
  21. keysdir=path2+os.path.sep
  22. print(keysdir)
  23. templateLoader = jinja2.FileSystemLoader(searchpath=keysdir)
  24. templateEnv = jinja2.Environment(loader=templateLoader)
  25. TEMPLATE_FILE = 'template.html'
  26. template = templateEnv.get_template(TEMPLATE_FILE)
  27. #SELECT distinct ts_word FROM trending_searches ORDER BY ts_date DESC limit 21;
  28. cursor=db.query('SELECT distinct ts_word FROM trending_searches ORDER BY ts_date DESC limit 20;')
  29. display={}
  30. idx=1
  31. for c in cursor:
  32. display['a'+str(idx)]=c['ts_word']
  33. idx+=1
  34. display['client']=clientid
  35. display['email']=email
  36. display['campaign']=campaign
  37. outputText = template.render(display=display)
  38. fw=codecs.open('c:/tmp/'+todaystr+'.html','w','utf-8')
  39. fw.write(outputText)
  40. fw.close()
  41. def send_email(campaign,email):
  42. gmail_user = 'edm@choozmo.com'
  43. gmail_password='wqdsyqwvppmubitv'
  44. sent_from = gmail_user
  45. #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']
  46. to = [email]
  47. msg = MIMEMultipart()
  48. msg['Subject'] = '['+campaign+'] 趨勢日報 | ChoozMo '
  49. msg['From'] = 'edm@choozmo.com'
  50. msg['To'] = email
  51. msgAlternative = MIMEMultipart('alternative')
  52. msg.attach(msgAlternative)
  53. fr=codecs.open('c:/tmp/'+todaystr+'.html','r','utf-8')
  54. content=fr.read()
  55. fr.close()
  56. text = MIMEText(content,'html','utf-8')
  57. msgAlternative.attach(text)
  58. try:
  59. server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
  60. server.ehlo()
  61. server.login(gmail_user, gmail_password)
  62. server.sendmail(sent_from, to, msg.as_string())
  63. server.close()
  64. print ('Email sent!')
  65. except:
  66. traceback.print_exc()
  67. print ('Something went wrong...')
  68. db = dataset.connect('mysql://choozmo:pAssw0rd@db.ptt.cx:3306/cmm_test?charset=utf8mb4')
  69. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='test';")
  70. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='choozmo';")
  71. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g2';")
  72. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='zec';")
  73. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='core_cust';")
  74. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g4';")
  75. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g1';")
  76. #cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup='g3';")
  77. cursor=db.query("SELECT id,email FROM cmm_test.edm_list where ugroup in ('choozmo','close_b');")
  78. for c in cursor:
  79. clientid=c['id']
  80. email=c['email']
  81. campaign=todaystr
  82. gen_email(email,clientid,campaign)
  83. send_email(campaign,email)
  84. time.sleep(30)
  85. #clientid=c['id']
  86. #email=c['email']
  87. """ email = 'yukyo@choozmo.com'
  88. clientid = 13
  89. campaign=todaystr
  90. gen_email(email, clientid,campaign)
  91. send_email(campaign,email) """
  92. #clientid='1'
  93. #email='jeweiliang@gmail.com'