123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608 |
- # 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()
|