import time from django.core.management.base import BaseCommand from django.template.loader import render_to_string from django.utils.html import strip_tags from django.core.mail import get_connection, EmailMultiAlternatives from university.models import OnlineExam, UserOnlineExam from pingcap_cookie_sso.models import SingleSignOnRecord def get_safe_chinese_id(chinese_id): return chinese_id[:6] + '*' * 9 + chinese_id[-3:] class Command(BaseCommand): def handle(self, *args, **options): data = {'c40b176c-442c-11ea-80ce-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 7, 'part_2_score': 9, 'total_score': 27, 'percent': 45, 'is_passed': False}, 'pctp': None, 'name': '李启航', 'chinese_id': '220723199512151019'}, '4fc181fc-f32c-11ea-976d-1866da9ce92b': {'pcta': {'part_0_score': 14, 'part_1_score': 7, 'part_2_score': 10, 'total_score': 31, 'percent': 51.67, 'is_passed': False}, 'pctp': None, 'name': '李旭锋', 'chinese_id': '14262119940316413X'}, '01879106-6dd1-11ea-b03f-1866da9ce92b': {'pcta': {'part_0_score': 16, 'part_1_score': 6, 'part_2_score': 9, 'total_score': 31, 'percent': 51.67, 'is_passed': False}, 'pctp': None, 'name': '樊猛', 'chinese_id': '36042419870202176'}, '9cbec714-2873-11ea-933c-1866da9ce92b': {'pcta': {'part_0_score': 8, 'part_1_score': 9, 'part_2_score': 10, 'total_score': 27, 'percent': 45, 'is_passed': False}, 'pctp': None, 'name': '陈加持', 'chinese_id': '350425198702253316'}, 'e4c6582a-21fb-11ea-8a6d-1866da9ce92b': {'pcta': {'part_0_score': 17, 'part_1_score': 9, 'part_2_score': 15, 'total_score': 41, 'percent': 68.33, 'is_passed': True}, 'pctp': None, 'name': '王世艺', 'chinese_id': '110102198909041112'}, '82bf4452-303d-11ea-847a-1866da9ce92b': {'pcta': {'part_0_score': 14, 'part_1_score': 10, 'part_2_score': 8, 'total_score': 32, 'percent': 53.33, 'is_passed': False}, 'pctp': None, 'name': '马学韬', 'chinese_id': '131121199302190259'}, 'fe3da58e-44e6-11ea-922c-1866da9ce92b': {'pcta': {'part_0_score': 8, 'part_1_score': 3, 'part_2_score': 9, 'total_score': 20, 'percent': 33.33, 'is_passed': False}, 'pctp': None, 'name': '田朋', 'chinese_id': '239005199407251017'}, '58e5b896-d27c-11ea-b0ec-1866da9ce92b': {'pcta': {'part_0_score': 15, 'part_1_score': 8, 'part_2_score': 10, 'total_score': 33, 'percent': 55, 'is_passed': False}, 'pctp': None, 'name': '舒正英', 'chinese_id': '500222199101308513'}, '35a8b8c8-a992-11ea-907f-1866da9ce92b': {'pcta': {'part_0_score': 15, 'part_1_score': 11, 'part_2_score': 15, 'total_score': 41, 'percent': 68.33, 'is_passed': True}, 'pctp': None, 'name': '吴剑锋', 'chinese_id': '310115197709244411'}, 'eaf7cd52-8a1d-11ea-8619-1866da9ce92b': {'pcta': {'part_0_score': 14, 'part_1_score': 10, 'part_2_score': 13, 'total_score': 37, 'percent': 61.67, 'is_passed': True}, 'pctp': {'part_0_score': 18, 'part_1_score': 16, 'part_2_score': 13, 'total_score': 47, 'percent': 67.14, 'is_passed': True}, 'pctp_2': {'score': 35, 'is_passed': False}, 'name': '李正洋', 'chinese_id': '342401199301063216'}, 'b971951e-5e95-11ea-8e8c-1866da9ce92b': {'pcta': {'part_0_score': 15, 'part_1_score': 2, 'part_2_score': 14, 'total_score': 31, 'percent': 51.67, 'is_passed': False}, 'pctp': {'part_0_score': 15, 'part_1_score': 10, 'part_2_score': 6, 'total_score': 31, 'percent': 44.29, 'is_passed': False}, 'pctp_2': {'score': 15, 'is_passed': False}, 'name': '梁梓锋', 'chinese_id': '440421199501108156'}, 'bbad346c-c666-11ea-9541-1866da9ce92b': {'pcta': {'part_0_score': 16, 'part_1_score': 9, 'part_2_score': 10, 'total_score': 35, 'percent': 58.33, 'is_passed': False}, 'pctp': None, 'name': '李达', 'chinese_id': '431223199106266817'}, 'e425a282-9f59-11ea-b9ac-1866da9ce92b': {'pcta': None, 'pctp': {'part_0_score': 17, 'part_1_score': 12, 'part_2_score': 9, 'total_score': 38, 'percent': 54.29, 'is_passed': False}, 'name': '李云龙', 'chinese_id': '362334198910081234'}, 'd98a37a0-456a-11ea-9e3e-1866da9ce92b': {'pcta': None, 'pctp': {'part_0_score': 18, 'part_1_score': 6, 'part_2_score': 5, 'total_score': 29, 'percent': 41.43, 'is_passed': False}, 'pctp_2': {'score': 65, 'is_passed': True}, 'name': '龚俊楷', 'chinese_id': '45092219930318097X'}, '0f81630e-9cc0-11ea-9099-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 5, 'part_2_score': 10, 'total_score': 27, 'percent': 45, 'is_passed': False}, 'pctp': None, 'name': '陈晴阳', 'chinese_id': '411381198805252618'}, 'dc2f4638-f174-11ea-a9ac-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 5, 'part_2_score': 10, 'total_score': 26, 'percent': 43.33, 'is_passed': False}, 'pctp': None, 'name': '丁海亚', 'chinese_id': '412724199801051835'}, '0fc9c440-e749-11ea-b31d-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 7, 'part_2_score': 12, 'total_score': 30, 'percent': 50, 'is_passed': False}, 'pctp': None, 'name': '张皓', 'chinese_id': '142233199010156319'}, 'b1b39b4a-6f63-11ea-b3a1-1866da9ce92b': {'pcta': {'part_0_score': 13, 'part_1_score': 12, 'part_2_score': 10, 'total_score': 35, 'percent': 58.33, 'is_passed': False}, 'pctp': None, 'name': '罗霞', 'chinese_id': '430181199011293318'}, '60f3b7bc-dc78-11ea-8f55-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 4, 'part_2_score': 8, 'total_score': 23, 'percent': 38.33, 'is_passed': False}, 'pctp': None, 'name': '沈智勇', 'chinese_id': '520181199506160017'}, 'ba18433e-f32b-11ea-a38d-1866da9ce92b': {'pcta': {'part_0_score': 13, 'part_1_score': 4, 'part_2_score': 12, 'total_score': 29, 'percent': 48.33, 'is_passed': False}, 'pctp': None, 'name': '代海鹏', 'chinese_id': '14243019901030001X'}, '652b0b4c-4e10-11ea-be99-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 2, 'part_2_score': 6, 'total_score': 20, 'percent': 33.33, 'is_passed': False}, 'pctp': None, 'name': '李石岩', 'chinese_id': '130182198503040510'}, '746ea010-e752-11ea-bcd9-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 7, 'part_2_score': 10, 'total_score': 29, 'percent': 48.33, 'is_passed': False}, 'pctp': None, 'name': '冼立志', 'chinese_id': '441621199510063019'}, '42d62fc0-e05c-11ea-aded-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 4, 'part_2_score': 5, 'total_score': 21, 'percent': 35, 'is_passed': False}, 'pctp': None, 'name': '申海龙', 'chinese_id': '370828198802124014'}, 'f53412fa-1126-11ea-8a9c-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 6, 'part_2_score': 8, 'total_score': 25, 'percent': 41.67, 'is_passed': False}, 'pctp': None, 'name': '曹瑞', 'chinese_id': '220122199204130751'}} pctp_users_openid = {'b971951e-5e95-11ea-8e8c-1866da9ce92b': ['梁梓锋', '18819486730', '523797426@qq.com', '440421199501108156'], 'e463c818-310f-11ea-8de9-1866da9ce92b': ['李海军', '15974103183', 'lihaijunds@chinambile.com', '430124198208123273'], '41748da0-5e95-11ea-8e8c-1866da9ce92b': ['黄蔚', '15876590907', '923020286@qq.com', '360729198910293914'], 'e425a282-9f59-11ea-b9ac-1866da9ce92b': ['李云龙', '13670238366', 'raymonlee1008@163.com', '362334198910081234'], 'd98a37a0-456a-11ea-9e3e-1866da9ce92b': ['龚俊楷', '18710946672', '492600258@qq.com', '45092219930318097X'], '69e1b584-e6b6-11ea-a9f8-1866da9ce92b': ['樊一蒙', '18890371656', '18890371656@139.com', '230604198703070214'], '3b959cde-e8c0-11ea-8d39-1866da9ce92b': ['郑红彪', '18678569826', 'tznghnbiao@126.com', '372922198905023397'], 'eaf7cd52-8a1d-11ea-8619-1866da9ce92b': ['李正洋', '15800622872', 'zhengyangli@pingcap.com', '342401199301063216'], 'c40b176c-442c-11ea-80ce-1866da9ce92b': ['李启航', '15811140916', 'qihang.li@pingcap.com', '220723199512151019'], 'e157818e-f32c-11ea-a7af-1866da9ce92b': ['于旸', '13284135201', 'biugesmutmc@outlook.com', '210402198912030238']} # context = { # 'name': '王迪', # 'chinese_id': '610429*********519', # 'pctp_1_score': 40, # 'pctp_1_passed': True, # 'pctp_2_score': 40, # 'pctp_2_passed': False # } for uid, d in data.items(): if not (d['pctp'] or d.get('pctp_2')): continue user_data = pctp_users_openid[uid] pctp_1_passed = d['pctp']['is_passed'] if d['pctp'] else None pctp_1_score = d['pctp']['total_score'] if d['pctp'] else '-' pctp_2_passed = d['pctp_2']['is_passed'] if d.get('pctp_2') else None pctp_2_score = d['pctp_2']['score'] if d.get('pctp_2') else '-' is_passed = pctp_1_passed and pctp_2_passed user_email = user_data[2] if is_passed: mail_template = 'university/email/pctp_exam_passed.html' else: mail_template = 'university/email/pctp_exam_failure.html' context = { 'name': user_data[0], 'chinese_id': get_safe_chinese_id(user_data[3]), 'mail_template': mail_template, 'email': user_email, 'pctp_1_score': pctp_1_score, 'pctp_1_passed': pctp_1_passed, 'pctp_2_score': pctp_2_score, 'pctp_2_passed': pctp_2_passed, 'is_passed': is_passed } print(context) html_message = render_to_string( mail_template, context=context ) connection = get_connection(fail_silently=False) mail = EmailMultiAlternatives( '2020-09-26 TiDB DBA 认证考试成绩(PCTP)', strip_tags(html_message), None, [user_email], connection=connection, bcc=['wangdi@pingcap.com', 'zhoushujun@pingcap.com']) mail.attach_alternative(html_message, 'text/html') mail.send() time.sleep(2) # def handle(self, *args, **options): # data = {'c40b176c-442c-11ea-80ce-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 7, 'part_2_score': 9, 'total_score': 27, 'percent': 45, 'is_passed': False}, 'pctp': None, 'name': '李启航', 'chinese_id': '220723199512151019'}, '4fc181fc-f32c-11ea-976d-1866da9ce92b': {'pcta': {'part_0_score': 14, 'part_1_score': 7, 'part_2_score': 10, 'total_score': 31, 'percent': 51.67, 'is_passed': False}, 'pctp': None, 'name': '李旭锋', 'chinese_id': '14262119940316413X'}, '01879106-6dd1-11ea-b03f-1866da9ce92b': {'pcta': {'part_0_score': 16, 'part_1_score': 6, 'part_2_score': 9, 'total_score': 31, 'percent': 51.67, 'is_passed': False}, 'pctp': None, 'name': '樊猛', 'chinese_id': '36042419870202176'}, '9cbec714-2873-11ea-933c-1866da9ce92b': {'pcta': {'part_0_score': 8, 'part_1_score': 9, 'part_2_score': 10, 'total_score': 27, 'percent': 45, 'is_passed': False}, 'pctp': None, 'name': '陈加持', 'chinese_id': '350425198702253316'}, 'e4c6582a-21fb-11ea-8a6d-1866da9ce92b': {'pcta': {'part_0_score': 17, 'part_1_score': 9, 'part_2_score': 15, 'total_score': 41, 'percent': 68.33, 'is_passed': True}, 'pctp': None, 'name': '王世艺', 'chinese_id': '110102198909041112'}, '82bf4452-303d-11ea-847a-1866da9ce92b': {'pcta': {'part_0_score': 14, 'part_1_score': 10, 'part_2_score': 8, 'total_score': 32, 'percent': 53.33, 'is_passed': False}, 'pctp': None, 'name': '马学韬', 'chinese_id': '131121199302190259'}, 'fe3da58e-44e6-11ea-922c-1866da9ce92b': {'pcta': {'part_0_score': 8, 'part_1_score': 3, 'part_2_score': 9, 'total_score': 20, 'percent': 33.33, 'is_passed': False}, 'pctp': None, 'name': '田朋', 'chinese_id': '239005199407251017'}, '58e5b896-d27c-11ea-b0ec-1866da9ce92b': {'pcta': {'part_0_score': 15, 'part_1_score': 8, 'part_2_score': 10, 'total_score': 33, 'percent': 55, 'is_passed': False}, 'pctp': None, 'name': '舒正英', 'chinese_id': '500222199101308513'}, '35a8b8c8-a992-11ea-907f-1866da9ce92b': {'pcta': {'part_0_score': 15, 'part_1_score': 11, 'part_2_score': 15, 'total_score': 41, 'percent': 68.33, 'is_passed': True}, 'pctp': None, 'name': '吴剑锋', 'chinese_id': '310115197709244411'}, 'eaf7cd52-8a1d-11ea-8619-1866da9ce92b': {'pcta': {'part_0_score': 14, 'part_1_score': 10, 'part_2_score': 13, 'total_score': 37, 'percent': 61.67, 'is_passed': True}, 'pctp': {'part_0_score': 18, 'part_1_score': 16, 'part_2_score': 13, 'total_score': 47, 'percent': 67.14, 'is_passed': True}, 'pctp_2': {'score': 35, 'is_passed': False}, 'name': '李正洋', 'chinese_id': '342401199301063216'}, 'b971951e-5e95-11ea-8e8c-1866da9ce92b': {'pcta': {'part_0_score': 15, 'part_1_score': 2, 'part_2_score': 14, 'total_score': 31, 'percent': 51.67, 'is_passed': False}, 'pctp': {'part_0_score': 15, 'part_1_score': 10, 'part_2_score': 6, 'total_score': 31, 'percent': 44.29, 'is_passed': False}, 'pctp_2': {'score': 15, 'is_passed': False}, 'name': '梁梓锋', 'chinese_id': '440421199501108156'}, 'bbad346c-c666-11ea-9541-1866da9ce92b': {'pcta': {'part_0_score': 16, 'part_1_score': 9, 'part_2_score': 10, 'total_score': 35, 'percent': 58.33, 'is_passed': False}, 'pctp': None, 'name': '李达', 'chinese_id': '431223199106266817'}, 'e425a282-9f59-11ea-b9ac-1866da9ce92b': {'pcta': None, 'pctp': {'part_0_score': 17, 'part_1_score': 12, 'part_2_score': 9, 'total_score': 38, 'percent': 54.29, 'is_passed': False}, 'name': '李云龙', 'chinese_id': '362334198910081234'}, 'd98a37a0-456a-11ea-9e3e-1866da9ce92b': {'pcta': None, 'pctp': {'part_0_score': 18, 'part_1_score': 6, 'part_2_score': 5, 'total_score': 29, 'percent': 41.43, 'is_passed': False}, 'pctp_2': {'score': 65, 'is_passed': True}, 'name': '龚俊楷', 'chinese_id': '45092219930318097X'}, '0f81630e-9cc0-11ea-9099-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 5, 'part_2_score': 10, 'total_score': 27, 'percent': 45, 'is_passed': False}, 'pctp': None, 'name': '陈晴阳', 'chinese_id': '411381198805252618'}, 'dc2f4638-f174-11ea-a9ac-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 5, 'part_2_score': 10, 'total_score': 26, 'percent': 43.33, 'is_passed': False}, 'pctp': None, 'name': '丁海亚', 'chinese_id': '412724199801051835'}, '0fc9c440-e749-11ea-b31d-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 7, 'part_2_score': 12, 'total_score': 30, 'percent': 50, 'is_passed': False}, 'pctp': None, 'name': '张皓', 'chinese_id': '142233199010156319'}, 'b1b39b4a-6f63-11ea-b3a1-1866da9ce92b': {'pcta': {'part_0_score': 13, 'part_1_score': 12, 'part_2_score': 10, 'total_score': 35, 'percent': 58.33, 'is_passed': False}, 'pctp': None, 'name': '罗霞', 'chinese_id': '430181199011293318'}, '60f3b7bc-dc78-11ea-8f55-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 4, 'part_2_score': 8, 'total_score': 23, 'percent': 38.33, 'is_passed': False}, 'pctp': None, 'name': '沈智勇', 'chinese_id': '520181199506160017'}, 'ba18433e-f32b-11ea-a38d-1866da9ce92b': {'pcta': {'part_0_score': 13, 'part_1_score': 4, 'part_2_score': 12, 'total_score': 29, 'percent': 48.33, 'is_passed': False}, 'pctp': None, 'name': '代海鹏', 'chinese_id': '14243019901030001X'}, '652b0b4c-4e10-11ea-be99-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 2, 'part_2_score': 6, 'total_score': 20, 'percent': 33.33, 'is_passed': False}, 'pctp': None, 'name': '李石岩', 'chinese_id': '130182198503040510'}, '746ea010-e752-11ea-bcd9-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 7, 'part_2_score': 10, 'total_score': 29, 'percent': 48.33, 'is_passed': False}, 'pctp': None, 'name': '冼立志', 'chinese_id': '441621199510063019'}, '42d62fc0-e05c-11ea-aded-1866da9ce92b': {'pcta': {'part_0_score': 12, 'part_1_score': 4, 'part_2_score': 5, 'total_score': 21, 'percent': 35, 'is_passed': False}, 'pctp': None, 'name': '申海龙', 'chinese_id': '370828198802124014'}, 'f53412fa-1126-11ea-8a9c-1866da9ce92b': {'pcta': {'part_0_score': 11, 'part_1_score': 6, 'part_2_score': 8, 'total_score': 25, 'percent': 41.67, 'is_passed': False}, 'pctp': None, 'name': '曹瑞', 'chinese_id': '220122199204130751'}} # pcta_users_openid = {'f53412fa-1126-11ea-8a9c-1866da9ce92b': ['曹瑞', '18701141297', 'cao_rui@founder.com.cn', '220122199204130751'], '60f3b7bc-dc78-11ea-8f55-1866da9ce92b': ['沈志勇', '18101370246', 'roger_lyc@163.com', '520181199506160017'], '9cbec714-2873-11ea-933c-1866da9ce92b': ['陈加持', '15801378939', 'smtany@outlook.com', '350425198702253316'], '0f81630e-9cc0-11ea-9099-1866da9ce92b': ['陈晴阳', '18701926365', '460967137@qq.com', '411381198805252618'], 'ba18433e-f32b-11ea-a38d-1866da9ce92b': ['代海鹏', '18501751070', 'haipeng.dai@pingcap.com', '14243019901030001X'], 'dc2f4638-f174-11ea-a9ac-1866da9ce92b': ['丁海亚', '15514406660', 'dxxv@qq.com', '412724199801051835'], '01879106-6dd1-11ea-b03f-1866da9ce92b': ['樊猛', '15311440792', 'fanmeng304@126.om', '360424198702021756'], '69e1b584-e6b6-11ea-a9f8-1866da9ce92b': ['樊一蒙', '18890371656', '18890371656@139.com', '230604198703070214'], '4ec6aa04-c251-11ea-93f6-1866da9ce92b': ['胡璨', '19924562004', 'hucan19861104@163.com', '422324198611046010'], 'bbad346c-c666-11ea-9541-1866da9ce92b': ['李达', '15221897653', 'lida@pingcap.com', '431223199106266817'], 'e463c818-310f-11ea-8de9-1866da9ce92b': ['李海军', '15974103183', 'lihaijunds@chinambile.com', '430124198208123273'], 'c40b176c-442c-11ea-80ce-1866da9ce92b': ['李启航', '15811140916', 'qihang.li@pingcap.com', '220723199512151019'], '652b0b4c-4e10-11ea-be99-1866da9ce92b': ['李石岩', '18810085083', '464650118@qq.com', '130182198503040510'], '4fc181fc-f32c-11ea-976d-1866da9ce92b': ['李旭锋', '17610170690', 'xufeng.li@pingcap-utc.com', '14262119940316413X'], 'eaf7cd52-8a1d-11ea-8619-1866da9ce92b': ['李正洋', '15800622872', 'zhengyangli@pingcap.com', '342401199301063216'], 'b971951e-5e95-11ea-8e8c-1866da9ce92b': ['梁梓锋', '18819486730', '523797426@qq.com', '440421199501108156'], '56250c50-e8cb-11ea-aa3d-1866da9ce92b': ['刘雷', '18621717620', 'starainx@gmail.com', '420984198310180010'], 'b1b39b4a-6f63-11ea-b3a1-1866da9ce92b': ['罗霞', '15201541032', '449119190@qq.com', '430181199011293318'], '82bf4452-303d-11ea-847a-1866da9ce92b': ['马学韬', '17610033202', 'dbmxt1@163.com', '131121199302190259'], 'a022515c-e2cf-11ea-9253-1866da9ce92b': ['朴松元', '15013243258', 'parkace@163.com', '222401198806270657'], '42d62fc0-e05c-11ea-aded-1866da9ce92b': ['申海龙', '18516264282', 'Allen.Shen-RSC@YumChina.com', '370828198802124014'], '58e5b896-d27c-11ea-b0ec-1866da9ce92b': ['舒正英', '15198156061', '598546998@qq.com', '500222199101308513'], 'fe3da58e-44e6-11ea-922c-1866da9ce92b': ['田朋', '17094570390', '786376668@qq.com', '239005199407251017'], 'e4c6582a-21fb-11ea-8a6d-1866da9ce92b': ['王世艺', '18612706539', '403020163@qq.com', '110102198909041112'], '35a8b8c8-a992-11ea-907f-1866da9ce92b': ['吴剑锋', '18621950515', 'jason.wu@yumchina.com', '310115197709244411'], '746ea010-e752-11ea-bcd9-1866da9ce92b': ['冼立志', '15603005676', '646136740@qq.com', '441621199510063019'], 'e157818e-f32c-11ea-a7af-1866da9ce92b': ['于旸', '13284135201', 'biugesmutmc@outlook.com', '210402198912030238'], '0fc9c440-e749-11ea-b31d-1866da9ce92b': ['张皓', '18652035681', '496237671@qq.com', '142233199010156319'], '8cfd314c-e87d-11ea-89c3-1866da9ce92b': ['张志涛', '13122003236', 'ansandy@foxmail.com', '420117198909294731'], '3b959cde-e8c0-11ea-8d39-1866da9ce92b': ['郑红彪', '18678569826', 'tznghnbiao@126.com', '372922198905023397'], '3ef006c0-e876-11ea-aa3d-1866da9ce92b': ['周威', '18621939392', 'zhouwei_sh@lakala.com', '320724198612024231']} # # context = { # # 'name': '王迪', # # 'chinese_id': '610429*********519', # # 'score': 40 # # } # # context = { # # 'name': '王迪', # # 'chinese_id': '610429*********519', # # 'pctp_1_score': 40, # # 'pctp_1_passed': True, # # 'pctp_2_score': 40, # # 'pctp_2_passed': False # # } # for uid, d in data.items(): # if not d['pcta']: # continue # user_data = pcta_users_openid[uid] # is_passed = d['pcta']['is_passed'] # user_email = user_data[2] # if is_passed: # mail_template = 'university/email/pcta_exam_passed.html' # else: # mail_template = 'university/email/pcta_exam_failure.html' # context = { # 'name': user_data[0], # 'chinese_id': get_safe_chinese_id(user_data[3]), # 'score': d['pcta']['total_score'], # 'mail_template': mail_template, # 'email': user_email # } # print(context) # html_message = render_to_string( # mail_template, # context=context # ) # connection = get_connection(fail_silently=False) # mail = EmailMultiAlternatives( # '2020-09-26 TiDB DBA 认证考试成绩(PCTA)', # strip_tags(html_message), # None, # [user_email], # connection=connection, # bcc=['wangdi@pingcap.com', 'zhoushujun@pingcap.com']) # mail.attach_alternative(html_message, 'text/html') # mail.send() # time.sleep(2)