chz_gmaillib.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import smtplib
  2. import traceback
  3. import os
  4. from email.mime.text import MIMEText
  5. from email.mime.image import MIMEImage
  6. from email.mime.multipart import MIMEMultipart
  7. from email.message import EmailMessage
  8. import codecs
  9. import jinja2
  10. def mail2(mailobj):
  11. gmail_user = mailobj['gmail_user']
  12. gmail_password=mailobj['gmail_password']
  13. sent_from = gmail_user
  14. toaddr=mailobj['toaddr']
  15. to = [toaddr]
  16. msg = MIMEMultipart()
  17. msg['Subject'] = mailobj['title']
  18. msg['From'] = gmail_user
  19. msg['To'] = toaddr
  20. image_paths=['c:/data/mail/mail3/images/image-1.png','c:/data/mail/mail3/images/image-2.png','c:/data/mail/mail3/images/image-3.png','c:/data/mail/mail3/images/image-4.png','c:/data/mail/mail3/images/image-5.png']
  21. msgAlternative = MIMEMultipart('alternative')
  22. msg.attach(msgAlternative)
  23. #fr=codecs.open('c:/tmp/final.html','r','utf-8')
  24. fr=codecs.open('c:/data/mail/mail3/index.html','r','utf-8')
  25. content=fr.read()
  26. fr.close()
  27. display=mailobj['display']
  28. templateLoader = jinja2.FileSystemLoader(searchpath='c:/data/mail/mail3')
  29. templateEnv = jinja2.Environment(loader=templateLoader)
  30. TEMPLATE_FILE = 'index.html'
  31. template = templateEnv.get_template(TEMPLATE_FILE)
  32. outputText = template.render(display=display)
  33. content=outputText
  34. text = MIMEText(content,'html','utf-8')
  35. counter = 1
  36. for fp in image_paths:
  37. fp = open(fp, 'rb')
  38. msgImage = MIMEImage(fp.read())
  39. fp.close()
  40. # Define the image's ID as referenced above
  41. msgImage.add_header('Content-ID', '<image'+str(counter)+'>')
  42. msgAlternative.attach(msgImage)
  43. counter += 1
  44. msgAlternative.attach(text)
  45. try:
  46. server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
  47. server.ehlo()
  48. server.login(gmail_user, gmail_password)
  49. server.sendmail(sent_from, to, msg.as_string())
  50. server.close()
  51. print ('Email sent!')
  52. except:
  53. traceback.print_exc()
  54. print ('Something went wrong...')
  55. # mailobj['toaddr']
  56. # mailobj['title']
  57. #'合作洽談 | ChoozMo '
  58. def mail_to_other(mailobj):
  59. gmail_user = mailobj['gmail_user']
  60. gmail_password=mailobj['gmail_password']
  61. sent_from = gmail_user
  62. toaddr=mailobj['toaddr']
  63. to = [toaddr]
  64. msg = MIMEMultipart()
  65. msg['Subject'] = mailobj['title']
  66. msg['From'] = gmail_user
  67. msg['To'] = toaddr
  68. image_paths=['c:/tmp/images/image-1.png','c:/tmp/images/image-2.png','c:/tmp/images/image-3.png','c:/tmp/images/image-4.png','c:/tmp/images/image-5.png','c:/tmp/images/image-6.png','c:/tmp/images/image-7.jpeg','c:/tmp/images/image-8.jpeg']
  69. msgAlternative = MIMEMultipart('alternative')
  70. msg.attach(msgAlternative)
  71. #fr=codecs.open('c:/tmp/final.html','r','utf-8')
  72. fr=codecs.open('c:/tmp/index.html','r','utf-8')
  73. content=fr.read()
  74. fr.close()
  75. display=mailobj['display']
  76. # display={}
  77. # display['custname']='敬啟者'
  78. # display['client']='j22332'
  79. # display['email']=toaddr
  80. # display['campaign']='20220305-test'
  81. templateLoader = jinja2.FileSystemLoader(searchpath='c:/tmp')
  82. templateEnv = jinja2.Environment(loader=templateLoader)
  83. TEMPLATE_FILE = 'index.html'
  84. template = templateEnv.get_template(TEMPLATE_FILE)
  85. outputText = template.render(display=display)
  86. content=outputText
  87. text = MIMEText(content,'html','utf-8')
  88. counter = 1
  89. for fp in image_paths:
  90. fp = open(fp, 'rb')
  91. msgImage = MIMEImage(fp.read())
  92. fp.close()
  93. # Define the image's ID as referenced above
  94. msgImage.add_header('Content-ID', '<image'+str(counter)+'>')
  95. msgAlternative.attach(msgImage)
  96. counter += 1
  97. msgAlternative.attach(text)
  98. try:
  99. server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
  100. server.ehlo()
  101. server.login(gmail_user, gmail_password)
  102. server.sendmail(sent_from, to, msg.as_string())
  103. server.close()
  104. print ('Email sent!')
  105. except:
  106. traceback.print_exc()
  107. print ('Something went wrong...')
  108. #mailobj={}
  109. #mailobj['toaddr']='jeweiliang@gmail.com'
  110. #mailobj['title']=' jeweiliang x ChoozMo 合作洽談 '
  111. #display={}
  112. #display['custname']='jeweiliang'
  113. #display['client']='3323'
  114. #display['email']=mailobj['toaddr']
  115. #display['campaign']='testing'
  116. #mailobj['display']=display
  117. #mail2(mailobj)