def execute(event): analysts = {} for analyst, email, txt in [x.split(',') for x in containmentAnalystsEmails.split('|')]: analysts[analyst] = {'email': email, 'txt': txt} perimeterBlock = getUserIn("Request Perimeter Block (Yes/No)") in YES event.setAttribute('perimeter_block', perimeterBlock) if perimeterBlock and (notifyContainmentAnalysts or event._analystUsername not in analysts): selectedAnalysts = getUserMultiChoice('Choose Containment Analysts', 'Analysts', analysts.keys(), numCols=1, default=['All'], allChoice=True) subject = 'CIRTA Perimeter Block' msg = ''' CIRTA ID -- %s Analyst -- %s IP -- %s Host -- %s MAC-- %s''' % (event.cirta_id, event._analystUsername, event.ip_address, event.hostname, event.mac_address) smsFilePath = event._baseFilePath + '.sms' f = open(smsFilePath, 'w') f.write(subject + msg) f.close() subprocess.call(['nano', smsFilePath]) f = open(smsFilePath, 'r') msg = f.read() f.close() printStatusMsg('Final Request', 22, '>', color=colors.HEADER2) print(msg) printStatusMsg('Final Request', 22, '<', color=colors.HEADER2) if getUserIn('Send Request (Yes/No)') in YES: m = MailServer(fromAddr=fromAddr, server=mailServerName) m.sendMail(subject + ' - %s' % event.cirta_id, msg, fromAddr, toAddr=[v['email'] for k,v in analysts.items() if k in selectedAnalysts]) m.sendText(msg, fromAddr, toAddr=[v['txt'] for k,v in analysts.items() if k in selectedAnalysts])