email_util.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # coding=utf-8
  2. from email.mime.text import MIMEText
  3. from email.header import Header
  4. from smtplib import SMTP
  5. from email.mime.multipart import MIMEMultipart
  6. from email.mime.base import MIMEBase
  7. from email.encoders import encode_base64
  8. import traceback
  9. import os
  10. class EmailUtil(object):
  11. host_server = 'smtp.exmail.qq.com'
  12. sender_email = 'zhangbr@elab-plus.com'
  13. pwd = '306492mnA'
  14. send_name = 'elab'
  15. receiver = ['1285211525@qq.com', 'lijm@elab-plus.com', 'xuanxc@elab-plus.com']
  16. def __init__(self):
  17. self.smtp = SMTP(self.host_server)
  18. self.smtp.set_debuglevel(1)
  19. self.smtp.ehlo(self.host_server)
  20. self.smtp.login(self.sender_email, self.pwd)
  21. def send_mail(self,
  22. mail_title,
  23. content,
  24. receivers,
  25. mail_excel
  26. ):
  27. try:
  28. msg = MIMEMultipart('related')
  29. msg['From'] = self.send_name
  30. msg['Subject'] = Header(mail_title, 'utf-8')
  31. msgAlternative = MIMEMultipart('alternative')
  32. msg.attach(msgAlternative)
  33. if content:
  34. textApart = MIMEText(content)
  35. msg.attach(textApart)
  36. if mail_excel:
  37. part = MIMEBase('application', "vnd.ms-excel")
  38. with open(mail_excel, 'rb') as fp:
  39. part.set_payload(fp.read())
  40. encode_base64(part)
  41. part.add_header('Content-Disposition', f'attachment; filename="{os.path.split(mail_excel)[1]}"')
  42. msg.attach(part)
  43. for receiver in receivers:
  44. msg['To'] = receiver
  45. try:
  46. self.smtp.sendmail(self.sender_email, receiver, msg.as_string())
  47. except Exception as e:
  48. print(str(e))
  49. self.smtp.sendmail(self.sender_email, receiver, msg.as_string())
  50. print('Success!')
  51. except Exception as e:
  52. print('Error:{}'.format(str(e)))
  53. traceback.print_exc()
  54. def quit_mail(self):
  55. self.smtp.quit()
  56. if __name__ == '__main__':
  57. send_email = EmailUtil()
  58. send_email.send_mail('elab_test', mail_excel=r'D:\elab-code\elab_mvp\resources\tongce1.xlsx')
  59. pass