| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | 
							- # coding=utf-8
 
- from email.mime.text import MIMEText
 
- from email.header import Header
 
- from smtplib import SMTP
 
- from email.mime.multipart import MIMEMultipart
 
- from email.mime.base import MIMEBase
 
- from email.encoders import encode_base64
 
- import traceback
 
- import os, random, sys, requests
 
- from requests_toolbelt.multipart.encoder import MultipartEncoder
 
- from mail_content_text import MailContentText
 
- # https://blog.csdn.net/chuxu8314/article/details/100618710
 
- # https://blog.csdn.net/Angry_Mills/article/details/79067270
 
- class EmailUtil(object):
 
-     host_server = 'smtp.exmail.qq.com'
 
-     sender_email = 'data_service@elab-plus.com'
 
-     pwd = 'elab@123A'
 
-     send_name = 'elab'
 
-     receiver = ['1285211525@qq.com', 'lijm@elab-plus.com', 'xuanxc@elab-plus.com']
 
-     # 线上
 
-     # url_online = "http://dm-api.elab-plus.cn/elab-marketing-sms//mail/sendEmailForReport"
 
-     url_online = "http://101.132.43.32:5303/mail/sendEmailForReport"
 
-     # 开发环境
 
-     url_dev = "http://43.254.221.77:5555/elab-marketing-sms//mail/sendEmailForReport"  # 接口地址
 
-     # 测试环境
 
-     url_test = "http://gatewaytest.elab-plus.com/elab-marketing-sms//mail/sendEmailForReport"
 
-     # 本地
 
-     url_local = "http://localhost:5303/mail/sendEmailForReport"
 
-     url = url_online
 
-     # 消息头数据
 
-     headers = {
 
-         'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36',
 
-         'Referer': url,
 
-     }
 
-     def __init__(self):
 
-         pass
 
-     def send_mail(self,
 
-                   mail_title,
 
-                   content,
 
-                   receivers,
 
-                   mail_excel
 
-                   ):
 
-         try:
 
-             smtp = SMTP(self.host_server, 25)
 
-             smtp.set_debuglevel(1)
 
-             smtp.ehlo(self.host_server)
 
-             smtp.login(self.sender_email, self.pwd)
 
-             msg = MIMEMultipart('related')
 
-             msg['From'] = self.send_name
 
-             msg['Subject'] = Header(mail_title, 'gbk')
 
-             msgAlternative = MIMEMultipart('alternative')
 
-             msg.attach(msgAlternative)
 
-             if content:
 
-                 textApart = MIMEText(content)
 
-                 msg.attach(textApart)
 
-             if mail_excel:
 
-                 part = MIMEBase('application', "vnd.ms-excel")
 
-                 with open(mail_excel, 'rb') as fp:
 
-                     part.set_payload(fp.read())
 
-                     encode_base64(part)
 
-                     print(os.path.split(mail_excel)[1])
 
-                     part.add_header('Content-Disposition', 'attachment', filename=('gbk', '', os.path.split(mail_excel)[1]))
 
-                     msg.attach(part)
 
-             for receiver in receivers:
 
-                 msg['To'] = receiver
 
-                 try:
 
-                     smtp.sendmail(self.sender_email, receiver, msg.as_string())
 
-                 except Exception as e:
 
-                     print(str(e))
 
-                     smtp.sendmail(self.sender_email, receiver, msg.as_string())
 
-                 print('Success!')
 
-         except Exception as e:
 
-             print('Error:{}'.format(str(e)))
 
-             traceback.print_exc()
 
-     def send_mail_by_admin(self,
 
-                             mail_title,
 
-                             content,
 
-                             receiver,
 
-                             mail_excel,
 
-                             file_name,
 
-                             mail_excel_1=None,
 
-                             file_name_1=None
 
-                            ):
 
-         if mail_excel_1 is not None:
 
-             with open(mail_excel, 'rb') as f:
 
-                 with open(mail_excel_1, 'rb') as ff:
 
-                     m = MultipartEncoder(
 
-                         fields={
 
-                             "enclosure": ('file', f, 'application/octet-stream'),
 
-                             "enclosure1": ('file', ff, 'application/octet-stream'),
 
-                             "mailAddressee": receiver,
 
-                             "mailContent": content,
 
-                             "mailEnclosureName": file_name,
 
-                             "mailEnclosureName1": file_name_1,
 
-                             "mailTitle": mail_title,
 
-                             "mailType": "text/html",
 
-                             "time": ""
 
-                         }
 
-                     )
 
-                     self.headers['Content-Type'] = m.content_type
 
-                     r = requests.post(self.url, data=m, verify=False, headers=self.headers)
 
-                     if r and r.json()['success']:
 
-                         return True
 
-         else:
 
-             with open(mail_excel, 'rb') as f:
 
-                 m = MultipartEncoder(
 
-                     fields={
 
-                         "enclosure": ('file', f, 'application/octet-stream'),
 
-                         "mailAddressee": receiver,
 
-                         "enclosure1": 'null',
 
-                         "mailContent": content,
 
-                         "mailEnclosureName": file_name,
 
-                         "mailEnclosureName1": 'null',
 
-                         "mailTitle": mail_title,
 
-                         "mailType": "text/html",
 
-                         "time": ""
 
-                     }
 
-                 )
 
-                 self.headers['Content-Type'] = m.content_type
 
-                 r = requests.post(self.url, data=m, verify=False, headers=self.headers)
 
-                 if r and r.json()['success']:
 
-                     return True
 
-     def send_test(self):
 
-         send_email = EmailUtil()
 
-         send_email.send_mail('elab_test', '11', ['1285211525@qq.com'],
 
-                              mail_excel=r'D:\elab-code\elab_mvp\resources\行为与模块分值汇总.xlsx')
 
- if __name__ == '__main__':
 
-     send_email = EmailUtil()
 
-     result = send_email.send_mail_by_admin('移动案场订阅日报', MailContentText.text_1.format(1, 2, 3, 4, 5, 6, 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, 31, 32), '1285211525@qq.com', r'D:\elab\elab_mvp\resources\report_data\2020-04-14\移动案场订阅周报_庞凌飞_单项目_2020-03-12至2020-03-13.xls', '移动案场订阅周报_庞凌飞_单项目_2020-03-12至2020-03-13.xls',
 
-                                            r'D:\elab\elab_mvp\resources\111.xlsx', '111.xlsx')
 
-     print(result)
 
 
  |