# import imaplib
# import shutil
# import smtplib
# from email.mime.multipart import MIMEMultipart
# from email.mime.text import MIMEText
#
# import boto3
# from boto3 import Session
# from django.views import View
#
# from model.models import EmailSortModel, EmailConfigModel
# from Utils.NeteaseMail import NeteaseMail
# from django.views.generic import TemplateView
#
# from object.ResponseObject import ResponseObject
# import os
# import csv
#
#
# class ComprehendView(TemplateView):
#
#     def get(self, request, *args, **kwargs):
#         request.encoding = 'utf-8'
#         operation = kwargs.get('operation')
#         return self.validation(request.GET, request, operation)
#
#     def post(self, request, *args, **kwargs):
#         request.encoding = 'utf-8'
#         operation = kwargs.get('operation')
#         return self.validation(request.POST, request, operation)
#
#     def validation(self, request_dict, request, operation):
#         response = ResponseObject()
#         if operation is None:
#             return response.json(444, 'error path')
#         else:
#             if operation == 'createSort':
#                 return self.createSort(request_dict, response)
#             elif operation == 'doStartSortWord':
#                 return self.doStartSortWord(request_dict, response)
#             elif operation == 'write_csv':
#                 return self.write_csv(request_dict, response)
#             elif operation == 'upload_csv':
#                 return self.upload_csv(request_dict, response)
#             elif operation == 'create_document_classifier':
#                 return self.create_document_classifier(request_dict, response)
#             elif operation == 'create_endpoint':
#                 return self.create_endpoint(request_dict, response)
#             elif operation == 'describe_document_classifier':
#                 return self.describe_document_classifier(request_dict, response)
#             elif operation == 'describe_endpoint':
#                 return self.describe_endpoint(request_dict, response)
#             elif operation == 'delete_endpoint':
#                 return self.delete_endpoint(request_dict, response)
#             elif operation == 'delete_document_classifier':
#                 return self.delete_document_classifier(request_dict, response)
#             elif operation == 'getDocumentClassifier':
#                 return self.get_document_classifier(request_dict, response)
#             elif operation == 'email':
#                 return self.email(request_dict, response)
#
#     def createSort(self, request_dict, response):
#         client = boto3.client('comprehend', region_name='region')
#
#         # Create a document classifier
#         create_response = client.create_document_classifier(
#             InputDataConfig={
#                 'S3Uri': 's3://S3Bucket/docclass/file name'
#             },
#             DataAccessRoleArn='arn:aws:iam::account number:role/resource name',
#             DocumentClassifierName='SampleCodeClassifier1',
#             LanguageCode='en'
#         )
#         print("Create response: %s\n", create_response)
#
#         # Check the status of the classifier
#         describe_response = client.describe_document_classifier(
#             DocumentClassifierArn=create_response['DocumentClassifierArn'])
#         print("Describe response: %s\n", describe_response)
#
#         # List all classifiers in account
#         list_response = client.list_document_classifiers()
#         print("List response: %s\n", list_response)
#
#     def doStartSortWord(self, request_dict, response):
#         client = boto3.client('comprehend', region_name='region')
#
#         start_response = client.start_document_classification_job(
#             InputDataConfig={
#                 'S3Uri': 's3://srikad-us-west-2-input/docclass/file name',
#                 'InputFormat': 'ONE_DOC_PER_LINE'
#             },
#             OutputDataConfig={
#                 'S3Uri': 's3://S3Bucket/output'
#             },
#             DataAccessRoleArn='arn:aws:iam::account number:role/resource name',
#             DocumentClassifierArn=
#             'arn:aws:comprehend:region:account number:document-classifier/SampleCodeClassifier1'
#         )
#
#         print("Start response: %s\n", start_response)
#
#         # Check the status of the job
#         describe_response = client.describe_document_classification_job(JobId=start_response['JobId'])
#         print("Describe response: %s\n", describe_response)
#
#         # List all classification jobs in account
#         list_response = client.list_document_classification_jobs()
#         print("List response: %s\n", list_response)
#
#     def write_csv(self, request_dict, response):
#         file_path = os.path.join(os.path.dirname(__file__) + '/../emailtrainfile/emailtrain.csv')
#         with open(file_path, "w", newline='') as f:
#             sort = EmailSortModel.objects.values('sort', 'clientquestion')
#             for a in sort:
#                 text = [a['sort'], a['clientquestion']]
#                 csv_writer = csv.writer(f)
#                 for i in range(50):
#                     csv_writer.writerow(text)
#         return response.json(0)
#
#     def upload_csv(self, request_dict, response):
#         file_path = os.path.join(os.path.dirname(__file__) + '/../emailtrainfile/emailtrain.csv')
#         bucket_name = "asj-amazon-comprehend"
#         upload_key = "location/emailtrain.csv"
#         with open(file_path, "rb") as f:
#             NeteaseMail().s3_login().upload_fileobj(f, bucket_name, Key=upload_key)
#         return response.json(0)
#
#     def create_document_classifier(self, request_dict, response):
#         try:
#             response1 = NeteaseMail().aws_login().create_document_classifier(
#                 DocumentClassifierName='lhq',
#                 DataAccessRoleArn='arn:aws:iam::697864307463:role/service-role/AmazonComprehendServiceRoleS3FullAccess-admin',
#                 # Tags=[{'Key': 'string','Value': 'string'},],
#                 InputDataConfig={
#                     'DataFormat': 'COMPREHEND_CSV',
#                     # | 'AUGMENTED_MANIFEST',
#                     'S3Uri': 's3://asj-amazon-comprehend/location/emailtrain.csv',
#                     # 'LabelDelimiter': 'string',
#                     # 'AugmentedManifests': [
#                     #     {
#                     #         'S3Uri': 'string',
#                     #         'AttributeNames': ['string', ]
#                     #     },
#                     # ]
#                 },
#                 OutputDataConfig={
#                     'S3Uri': 's3://asj-amazon-comprehend/output/lhq/'},
#                 # 'KmsKeyId': 'string'},
#                 # ClientRequestToken='string',
#                 LanguageCode='en',
#                 # | 'es' | 'fr' | 'de' | 'it' | 'pt' | 'ar'
#                 # | 'hi' | 'ja' | 'ko' | 'zh' | 'zh-TW',
#                 # VolumeKmsKeyId='string',
#                 # VpcConfig={
#                 #     'SecurityGroupIds': ['string', ],
#                 #     'Subnets': ['string', ]
#                 # },
#                 Mode='MULTI_CLASS'  # 'MULTI_LABEL'
#             )
#         except Exception as e:
#             return response.json(404, repr('模型正在训练或已存在'))
#         else:
#             print(response1)
#             return response.json(0)
#
#     def create_endpoint(self, request_dict, response):
#         try:
#             response1 = NeteaseMail().aws_login().create_endpoint(
#                 EndpointName='lhq',
#                 ModelArn='arn:aws:comprehend:us-east-1:697864307463:document-classifier/lhq',
#                 # Document classifier arn
#                 DesiredInferenceUnits=1,
#                 # ClientRequestToken='string',
#                 # Tags=[{'Key': 'string','Value': 'string'},]
#             )
#         except Exception as e:
#             return response.json(404, repr('模型正在训练或不存在，请等待模型训练完再创建端点'))
#         else:
#             print(response1)
#             return response.json(0)
#
#     def describe_document_classifier(self, request_dict, response):
#         try:
#             # classifier_name = request_dict.get('classifier_name', None)
#             a = NeteaseMail().aws_arn()[0]
#             # classifier_arn = a + str(classifier_name)
#             classifier_arn = a + 'lhq'
#             response1 = NeteaseMail().aws_login().describe_document_classifier(
#                 DocumentClassifierArn=classifier_arn
#             )
#             a1 = {"Status": response1['DocumentClassifierProperties']['Status']}
#         except Exception as e:
#             return response.json(404, repr('模型不存在'))
#         else:
#             return response.json(0, a1)
#
#     def describe_endpoint(self, request_dict, response):
#         try:
#             # endpoint_name = request_dict.get('endpoint_name', None)
#             a = NeteaseMail().aws_arn()[1]
#             # endpoint_arn = a + str(endpoint_name)
#             endpoint_arn = a + 'lhq'
#             response1 = NeteaseMail().aws_login().describe_endpoint(
#                 EndpointArn=endpoint_arn
#             )
#             a1 = {"Status": response1['EndpointProperties']['Status']}
#         except Exception as e:
#             return response.json(404, repr('端点不存在'))
#         else:
#             return response.json(0, a1)
#
#     def delete_endpoint(self, request_dict, response):
#         try:
#             # endpoint_name = request_dict.get('endpoint_name', None)
#             a = NeteaseMail().aws_arn()[1]
#             # endpoint_arn = a + str(endpoint_name)
#             endpoint_arn = a + 'lhq'
#             response1 = NeteaseMail().aws_login().delete_endpoint(
#                 EndpointArn=endpoint_arn)
#         except Exception as e:
#             return response.json(404, repr('端点不存在或正在删除中'))
#         else:
#             return response.json(0)
#
#     def delete_document_classifier(self, request_dict, response):
#         try:
#             # classifier_name = request_dict.get('classifier_name', None)
#             a = NeteaseMail().aws_arn()[0]
#             # classifier_arn = a + str(classifier_name)
#             classifier_arn = a + 'lhq'
#             response1 = NeteaseMail().aws_login().delete_document_classifier(
#                 DocumentClassifierArn=classifier_arn)
#         except Exception as e:
#             return response.json(404, repr('模型不存在或正在删除中'))
#         else:
#             return response.json(0)
#
#     def get_document_classifier(self, request_dict, response):
#         ec_qs = EmailConfigModel.objects.filter(emailtag=1)  # 获取总邮件
#         emailsum = 0
#         replyemailsum = 0
#         for ec in ec_qs:
#             email_server = NeteaseMail().loginEmail(ec.emailserver, ec.fromaddr, ec.password, ec.emailserverport)
#             subject_list, from_list, bodydata_list, uid_list, results, email_body, fujian_list, image_list = NeteaseMail().getEmailContext(
#                 email_server)
#             emailsum += len(results)
#             print("标题：", len(subject_list), subject_list)
#             print("发件人：", len(from_list), from_list)
#             print("邮件内容：", len(bodydata_list), bodydata_list)
#             print("邮件uid:", len(uid_list), uid_list)
#             print("附件判断：", len(fujian_list), fujian_list)
#             print('图片数量：', len(image_list), image_list)
#             if not bodydata_list:
#                 print("邮箱内无未读邮件")
#             else:
#                 print('成功拿到邮件数据')
#             for i, v in enumerate(subject_list):
#                 print('-------------------------------------------------------------------------')
#                 print("邮件标题：", subject_list[i])
#                 if not bodydata_list[i] or not subject_list[i]:
#                     print("邮件无正文或无标题，不进行回复")
#                     continue
#
#                 if fujian_list[i] == 'have':
#                     reply_model = bodydata_list[i]
#                     image = image_list
#                     shoujianren = 'liehaoquan2021@163.com'
#                     fajianren = from_list[i].split()[1]
#                     NeteaseMail().sentemail(None, uid_list[i],reply_model, image, subject_list[i], fajianren, shoujianren,
#                                             ec.fromaddr, ec.password)
#                     file_path = os.path.join(os.path.dirname(__file__) + '/../emailtrainfile/image/')
#                     shutil.rmtree(file_path)
#                     os.mkdir(file_path)
#                     print('邮件含有图片或附件，已转发到zendesk')
#                     email_server.set_flags(uid_list[i], b'\\Seen', silent=False)
#                     continue
#
#                 response1 = NeteaseMail().aws_login().classify_document(
#                     Text=bodydata_list[i].split('\n\n\n\n\n')[0],
#                     EndpointArn='arn:aws:comprehend:us-east-1:697864307463:document-classifier-endpoint/lhq'
#                     # EndpointArn='arn:aws:comprehend:us-east-1:697864307463:document-classifier-endpoint/test'
#                 )
#                 # print(response.index(max(response['Classes']['Score'])))
#                 nums = []
#                 print('emailsort:')
#                 for cls in response1['Classes']:
#                     print(cls['Name'])
#                     nums.append(cls['Score'])
#                 print("识别种类及命中率：", response1['Classes'][nums.index(max(nums))])
#                 if response1['Classes'][nums.index(max(nums))]['Score'] >= 0.95:
#                     reply_sort = EmailSortModel.objects.filter(
#                         sort=response1['Classes'][nums.index(max(nums))]['Name']).values('autoreplymodel')
#                     if reply_sort.exists():
#                         reply_model = reply_sort[0]['autoreplymodel'] + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + \
#                                       'At' + email_body[i]['Date'] + from_list[i].split()[0] + \
#                                       from_list[i].split()[1] + \
#                                       'wrote:\n ' + bodydata_list[i]
#                         print(reply_model)
#                         shoujianren = from_list[i].split()[1].replace('<', '').replace('>', '')
#                         a = NeteaseMail().sentemail(None, uid_list[i], reply_model, None, subject_list[i], ec.fromaddr, shoujianren,
#                                                     ec.fromaddr, ec.password)
#                         email_server.set_flags(uid_list[i], b'\\Seen', silent=False)
#                         if a == 'fail':
#                             print("此邮件被判定为垃圾邮件，不进行回复")
#                             email_server.remove_flags(uid_list[i], b'\\Seen', silent=False)
#                         else:
#                             replyemailsum += a
#                     else:
#                         print("无此转发分类，不进行回复")
#                 else:
#                     reply_model = bodydata_list[i]
#                     shoujianren = 'liehaoquan2021@163.com'
#                     fajianren = from_list[i].split()[1]
#                     NeteaseMail().sentemail(reply_model, None, subject_list[i], fajianren, shoujianren,
#                                             ec.fromaddr, ec.password)
#                     email_server.set_flags(uid_list[i], b'\\Seen', silent=False)
#                     print("命中率低于0.95，已转发到zendesk")
#                 # es_qs = EmailSortModel.objects.filter(sort=response1['Classes'][nums.index(max(nums))]['Name'])
#                 # if es_qs.exists():
#                 #     uemail_qs = EmailConfigModel.objects.filter(userid=es_qs[0]['userid'], langconfig__langcode='en')
#                 #     if uemail_qs.exists():
#                 #         for uem in uemail_qs:
#                 #             NeteaseMail().sentemail(bodydata_list[i], subject_list[i], from_list[i], uem.fromaddr, ec.fromaddr, ec.password)
#             NeteaseMail().closeEmail(email_server)
#         emaildict = {
#             "邮箱内获取到未读邮件数": emailsum,
#             "已自动回复的邮件数": replyemailsum
#         }
#         return response.json(0, emaildict)
#
#     def email(self, request_dict, response):
#         from imapclient import IMAPClient
#         import email
#         import time
#         import email.parser
#         from nntplib import decode_header
#         from email.header import Header
#         import chardet
#
#         ec_qs = EmailConfigModel.objects.filter(emailtag=1)  # 获取总邮件
#         for ec in ec_qs:
#             global a, email_server
#
#             #邮件登录
#             try:
#                 email_server = IMAPClient(ec.emailserver, ssl=True, port=ec.emailserverport)
#                 # email_server = imaplib.IMAP4_SSL(IMAP_SERVER, 993)  # 网易企业邮箱服务器及SSL端口
#                 print("imap4 服务器连接成功")
#                 email_server.login(ec.fromaddr, ec.password)
#                 email_server.id_({"name": "IMAPClient", "version": "2.1.0"})
#                 # email_server.login(FROM_ADDR, PASSWORD)
#                 print("imap4 (%s)账号密码正确，登录成功" % ec.fromaddr)
#             except:
#                 print("imap4 服务器连接失败")
#
#             email_server.select_folder('INBOX')
#             results = email_server.search('UNSEEN')  # 读取未读邮件
#             print("邮箱内获取到未读邮件：", len(results))
#             subject_list = []
#             from_list = []
#             uid_list = []
#             email_body = []
#             fujian_list = []
#             image_list = []
#             plain_list = []
#             html_list = []
#             a = 0
#
#             # 对每一封邮件进行内容解析
#             for uid in results:
#                 msgdict = email_server.fetch(uid, ['Body[]', 'ENVELOPE'], '(RFC822)')
#                 mailbody = msgdict[uid][b'BODY[]']
#                 envelope = msgdict[uid][b'ENVELOPE']
#                 message = email.message_from_bytes(mailbody)
#                 text = message.as_string()
#                 body = email.parser.Parser().parsestr(text)
#
#                 nowtime = time.asctime(time.localtime(time.time()))
#                 nowmonth = nowtime.split()[1]
#                 nowday = nowtime.split()[2]
#                 emailmonth = body['Date'].split()[2]
#                 emailday = body['Date'].split()[1]
#                 print('email',emailmonth,emailday)
#                 print('now', nowmonth, nowday)
#                 # if emailmonth != nowmonth or emailday != nowday:
#                 #     email_server.remove_flags(uid, b'\\Seen', silent=False)
#                 #     continue
#
#                 email_body.append(body)
#                 subject_list.append(decode_header(body['Subject']))
#                 from_list.append(decode_header(body['from']))
#                 uid_list.append(uid)
#                 print("标题：",  subject_list)
#
#                 attlist = {}
#                 try:
#                     for part in body.walk():
#                         if not part.is_multipart():
#                             file = part.get_filename()  # 附件名
#                             if file:
#                                 a = 1
#                                 filename = email.header.decode_header(file)[0][0]  # 附件名
#                                 charset = email.header.decode_header(file)[0][1]  # 编码
#                                 if part.get_all("Content-ID"):
#                                     content_id = part.get_all("Content-ID")[0][1:-1]
#                                 else:
#                                     content_id = ""  # 附件ID,也就是邮件源码里面的cid
#                                 ''' 多个附件时将附件名和ID对应保存到dict里面,后面将正文中的cid替换为本地保存路径 '''
#                                 attlist[content_id] = filename
#                                 ''' 附件文件名为中文或有编码的时候要进行转码 '''
#                                 if str(charset) != "None":
#                                     filename = filename.decode(charset)
#                                 filedata = part.get_payload(decode=True)  # 附件内容
#                                 ''' 把附件写到文件里面,附件一定要用wb打开,二进制 '''
#                                 file_path = os.path.join(os.path.dirname(__file__) + '/../emailtrainfile/image/')
#                                 image_list.append(file_path + filename)
#                                 with open(file_path + filename, "wb") as fw:
#                                     fw.write(filedata)
#                                     fw.close()
#
#                             elif part.get_content_type() == 'text/plain':
#                                 con3 = part.get_payload(decode=True).strip()
#                                 print('plain:', chardet.detect(con3))
#                                 if chardet.detect(con3)['encoding'] == 'utf-8':
#                                     plain_list.append(con3.decode('utf-8'))
#                                     continue
#                                 # if chardet.detect(con3)['encoding'] == 'ISO-8859-1':
#                                 #     plain_list.append(con3.decode('ISO-8859-1')) # .decode('gbk').encode('utf8')
#                                 #     continue
#                                 else:
#                                     plain_list.append(con3.decode('gbk'))
#                                     continue
#                             elif part.get_content_type() == 'text/html':
#                                 con3 = part.get_payload(decode=True).strip()
#                                 print('html', chardet.detect(con3))
#                                 if chardet.detect(con3)['encoding'] == 'utf-8':
#                                     html_list.append(con3.decode('utf-8'))
#                                     continue
#                                 # if chardet.detect(con3)['encoding'] == 'ISO-8859-1':
#                                 #     html_list.append(con3.decode('ISO-8859-1'))
#                                 #     continue
#                                 else:
#                                     html_list.append(con3.decode('gbk'))
#                                     continue
#                 except Exception as e:
#                     print(e)
#                     print('获取邮件内容失败')
#                     email_server.remove_flags(uid, b'\\Seen', silent=False)
#                     subject_list.clear()
#                     from_list.clear()
#                     uid_list.clear()
#                     email_body.clear()
#                     fujian_list.clear()
#                     image_list.clear()
#                     plain_list.clear()
#                     html_list.clear()
#                     print('-------------------------------------------------------------------------')
#                     continue
#
#
#                 if a == 1:
#                     fujian_list.append('have')
#                     a = 0
#                 else:
#                     fujian_list.append('none')
#                 email_server.remove_flags(uid, b'\\Seen', silent=False)
#                 print("发件人：", from_list)
#                 print("邮件内容：")
#                 print("plain形式:",plain_list)
#                 print("html形式:",html_list)
#                 print("邮件uid:", uid_list)
#                 print("邮件是否含有图片或附件：", fujian_list)
#                 print('图片或附件名字：', image_list)
#                 if not html_list and not plain_list:
#                     print("邮箱内无未读邮件")
#                 else:
#                     print('成功拿到邮件数据')
#
#                 # 对邮件类型进行判断处理
#                 for i, v in enumerate(uid_list):
#                     print("邮件标题：", subject_list[i])
#                     if html_list and not plain_list:
#                         print('此邮件仅含有html')
#                         reply_model = html_list[i]
#                         fajianren = from_list[i]
#                         shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                         NeteaseMail().sentemail(email_server, uid_list[i],reply_model, None, subject_list[i], fajianren, shoujianren,
#                                                 ec.fromaddr, ec.password)
#                         print('-------------------------------------------------------------------------')
#                         break
#
#                     if plain_list[i] == '':
#                         print('此邮件无正文')
#                         reply_model = ''
#                         fajianren = from_list[i]
#                         shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                         NeteaseMail().sentemail(email_server, uid_list[i],reply_model, None, subject_list[i], fajianren, shoujianren,
#                                                 ec.fromaddr, ec.password)
#                         print('-------------------------------------------------------------------------')
#                         break
#
#                     if not subject_list[i]:
#                         print('此邮件无主题')
#                         if html_list and not plain_list:
#                             print('此邮件无主题且仅含有html')
#                             reply_model = html_list[i]
#                             fajianren = from_list[i]
#                             shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                             biaoti = '(无主题)'
#                             NeteaseMail().sentemail(email_server, uid_list[i],reply_model, None, biaoti, fajianren, shoujianren,
#                                                     ec.fromaddr, ec.password)
#                             print('-------------------------------------------------------------------------')
#                             break
#                         elif plain_list:
#                             print('此邮件无主题且含有正文')
#                             reply_model = plain_list[i]
#                             fajianren = from_list[i]
#                             shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                             biaoti = '(无主题)'
#                             NeteaseMail().sentemail(email_server, uid_list[i], reply_model, None, biaoti, fajianren, shoujianren,
#                                                     ec.fromaddr, ec.password)
#                         print('-------------------------------------------------------------------------')
#                         break
#
#                     # 处理含有图片或附件的邮件
#                     if fujian_list[i] == 'have':
#                         print('此邮件含有图片或附件或视频或压缩包')
#                         reply_model = html_list[i]
#                         image = image_list
#                         fajianren = from_list[i]
#                         shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                         NeteaseMail().sentemail(email_server, uid_list[i], reply_model, image, subject_list[i], fajianren, shoujianren,
#                                                 ec.fromaddr, ec.password)
#                         file_path = os.path.join(os.path.dirname(__file__) + '/../emailtrainfile/image/')
#                         shutil.rmtree(file_path)
#                         os.mkdir(file_path)
#                         print('-------------------------------------------------------------------------')
#                         break
#
#                     if fujian_list[i] == 'none':
#                         # 处理无图片或附件的邮件
#                         # 进行种类判断
#                         print("识别内容：", plain_list[i].split('\n\n')[0])  # plain
#                         if len(plain_list[i].split('\n\n\n')[0]) < 1000:
#                             response1 = NeteaseMail().aws_login().classify_document(
#                                 Text=plain_list[i].split('\n\n\n')[0],
#                                 EndpointArn='arn:aws:comprehend:us-east-1:697864307463:document-classifier-endpoint/lhq'
#                                 # EndpointArn='arn:aws:comprehend:us-east-1:697864307463:document-classifier-endpoint/test'
#                             )
#                             # print(response.index(max(response['Classes']['Score'])))
#                             nums = []
#                             print('emailsort:')
#                             for cls in response1['Classes']:
#                                 print(cls['Name'])
#                                 nums.append(cls['Score'])
#                             print("识别种类及命中率：", response1['Classes'][nums.index(max(nums))])
#                             # 命中率高于0.95时
#                             if response1['Classes'][nums.index(max(nums))]['Score'] >= 0.95:
#                                 reply_sort = EmailSortModel.objects.filter(
#                                     sort=response1['Classes'][nums.index(max(nums))]['Name']).values('autoreplymodel')
#                                 if reply_sort.exists():
#                                     reply_model = reply_sort[0]['autoreplymodel'] + '\n' + '\n' + '\n' + '\n' + '\n' + '\n' + \
#                                                   'At' + email_body[i]['Date'] + str(from_list[i].split()[0:-1]) + \
#                                                   from_list[i].split()[-1] + \
#                                                   'wrote:\n ' + plain_list[i]
#                                     print(reply_model)
#                                     shoujianren = from_list[i].split()[1].replace('<', '').replace('>', '')
#                                     NeteaseMail().sentemail(email_server, uid_list[i], reply_model, None, subject_list[i], ec.fromaddr, shoujianren,
#                                                             ec.fromaddr, ec.password)
#                                     print('-------------------------------------------------------------------------')
#                                     break
#                             else:
#                                 print("此邮件命中率低于0.95")
#                                 reply_model = html_list[i]  # html
#                                 fajianren = from_list[i]
#                                 print(fujian_list)
#                                 shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                                 NeteaseMail().sentemail(email_server, uid_list[i], reply_model, None, subject_list[i],
#                                                         fajianren, shoujianren,
#                                                         ec.fromaddr, ec.password)
#                                 print('-------------------------------------------------------------------------')
#                                 break
#
#                         else:
#                             print("识别内容过长")
#                             reply_model = html_list[i]  # html
#                             fajianren = from_list[i]
#                             print(fujian_list)
#                             shoujianren = 'liehaoquan2021@163.com'  # 写zendesk邮箱
#                             NeteaseMail().sentemail(email_server, uid_list[i], reply_model, None, subject_list[i], fajianren, shoujianren,
#                                                     ec.fromaddr, ec.password)
#                             print('-------------------------------------------------------------------------')
#                             break
#                 subject_list.clear()
#                 from_list.clear()
#                 uid_list.clear()
#                 email_body.clear()
#                 fujian_list.clear()
#                 image_list.clear()
#                 plain_list.clear()
#                 html_list.clear()
#             NeteaseMail().closeEmail(email_server)
#         return response.json(0)
#
# # if __name__ == '__main__':
# #     ComprehendAction().get_document_classifier()