def send(self): self._select() expire_assets = ",".join(self.expire_asset_list) expire_assets = expire_assets.rstrip(",") if expire_assets: content = u"Hi:\n IP为 %s 的服务器明天就要过期,请提前做好相关准备!(系统邮件,请勿回复!)" % expire_assets SendMail.send(content)
def __init__(self, dt=None): self.yesterday = datetime.datetime.now() - datetime.timedelta(1) if dt: self.yesterday = dt self.parent = settings.json_restore_path self.success = [] # {'name':'', "size':0, "rows":0} self.failed = [] # string list self.enterprise_count = 0 self.done = 0 self.html_template = os.path.join(os.path.dirname(__file__), "mail.html") self.send_mail = SendMail(settings.EMAIL_HOST, settings.EMAIL_PORT, settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD, ssl=True)
def process(): with open(config.data) as data: people = csv.DictReader(data) for person in people: params = {key: value for key, value in person.items() if not key.startswith('_')} template = CreateTemplate(params, person['_template']).get() mail = SendMail(template, '{0} <{1}>'.format(person['_full_name'], person['_mail']), 'Gracias por te presentares á oferta de traballo da navalla suíza'.format(person['short_name'])) mail.send() print 'Email sent to {0}'.format(person['_full_name']) time.sleep(randint(2,5))
def main(): config = Config() ds = DiskSpace(path=config.path) percent_limit = config.threshold if ds.used_over_limit(percent_limit): message = "Your hard disk is getting full. You are using %s%% of the available space."\ "(Warning Threshold: %s%%)" % (ds.percent_used(), percent_limit) + "\n" message += "Total: %s" % ds.humanize_bytes(ds.bytes_capacity(), 1000) + "\n" message += "Used: %s" % ds.humanize_bytes(ds.bytes_used(), 1000) + "\n" message += "Avail: %s" % ds.humanize_bytes(ds.bytes_free(), 1000) sendMail = SendMail(config) sendMail.setMessage(message) sendMail.send()
def api(mailto): #print type(request.data) xml = request.data root = etree.fromstring(xml) jobname = root.getiterator('name')[0].text jobid = root.getiterator('execution')[0].attrib['id'] jobstatus = root.getiterator('execution')[0].attrib['status'] job_project = root.getiterator('execution')[0].attrib['project'] job_follow_url = root.getiterator('execution')[0].attrib['href'] job_start_time = root.getiterator('date-started')[0].text job_end_time = root.getiterator('date-ended')[0].text # print " jobname: %s\n jobid: %s \n jobstatus: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \ # ,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time) msg = " job name: %s\n jobid: %s \n job status: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \ ,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time) subject='rundeck notification: job <%s> %s'%(jobname,jobstatus) sender = SendMail('mail.xxx.com','*****@*****.**',mailto,'*****@*****.**','sender_password') sender.send(msg,subject,filename=None) return 'ok'
def api(mailto): #print type(request.data) xml = request.data root = etree.fromstring(xml) jobname = root.getiterator('name')[0].text jobid = root.getiterator('execution')[0].attrib['id'] jobstatus = root.getiterator('execution')[0].attrib['status'] job_project = root.getiterator('execution')[0].attrib['project'] job_follow_url = root.getiterator('execution')[0].attrib['href'] job_start_time = root.getiterator('date-started')[0].text job_end_time = root.getiterator('date-ended')[0].text # print " jobname: %s\n jobid: %s \n jobstatus: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \ # ,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time) msg = " job name: %s\n jobid: %s \n job status: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \ ,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time) subject = 'rundeck notification: job <%s> %s' % (jobname, jobstatus) sender = SendMail('mail.xxx.com', '*****@*****.**', mailto, '*****@*****.**', 'sender_password') sender.send(msg, subject, filename=None) return 'ok'
def run(proxy_server, sock, addr): request = HTTPRequest(sock) host = request.get_header('Host') if proxy_server.is_restriction_enabled( ) and proxy_server.is_in_disallowed_hosts(host): logging.info('Bad website! Sending Email to admin.') sock.sendall( proxy_server.bad_response( 'Visiting this site is forbidden!').read()) sock.close() logging.info('Socket connection with peer closed.') SendMail().snd_email(request.read().decode( request.DEFAULT_ENCODING)) return if proxy_server.is_privacy_enabled(): request.set_header('user-agent', proxy_server.privacy_user_agent) if not proxy_server.cache_handler.is_cached( host, request.method, request.route, request.version, sock): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.connect( (host, HTTPRequestHandler.HTTP_SERVER_LISTENING_PORT)) logging.info( f'Connection established with host {host} ' f'on port {HTTPRequestHandler.HTTP_SERVER_LISTENING_PORT}.') server_socket.send(request.read()) logging.info('Request sent to server.') response = HTTPResponse(server_socket) logging.info('Response read from server.') logging.info('Connection with server host closed.') if response.is_html() and proxy_server.is_http_injection_enabled(): response = proxy_server.body_inject(response) logging.info('Response injected with CN-Proxy(TM) navbar.') proxy_server.discharge_user(addr, response.length) res = response.read() sock.sendall(res) if proxy_server.is_caching_enabled(): proxy_server.cache_handler.store(res, response.pragma, response.modified_since, response.expire, host, request.route) logging.info('Response sent back to client.') server_socket.close() sock.close()
program.set_config_file(config_file) # check if synchronisation is not currently running if not program.isRunning(): program.startRunning() # check if it has not already been launched in the last 7 days if not program.isLaunchedLastDays(days=7): # Rsync local data copyLocalData() program.stopRunning(stop_program=False) # be sure that synchronisation is launched regularly if not program.isLaunchedLastDays(days=14): mail.send(subject="Not launched since more than 14 days", message="See log file %s\nSee config file %s" % (logC.getLogFile(), config_file), code=1) program.stopLog() if __name__ == '__main__': logC = LogClass(prog_name, parsed_args.debug) logger = logC.getLogger() mail = SendMail(prog_name=prog_name) program = Program(prog_name=prog_name) main()
if o in ("-c", "--crawl"): fp = open("/tmp/tmp-page.txt", "wb") if crawl.loginHjbbs(): for link in crawl.parseTitles(): page = crawl.crawlPage(link) fp.write(link + "\r\n") fp.write(page["title"]) fp.write(page["content"]) print link else: print "login failed" elif o in ("-m", "--mail"): from mail import SendMail db = CrawlDB() mail = SendMail() # search db pages = db.getPages() if pages: for page in pages: if mail.sendMail(page["title"], page["content"]): db.setUrl(page["url"]) else: print "no mail is sent" mail.close() else: assert False, "unhandled option" else: # from time import strftime, gmtime # timefmt = strftime("%y-%m-%d", gmtime()) # print "%s run crawl.crawlPages()" % (timefmt)
def main(): temp_file = os.path.sep + 'data ' + os.path.sep + 'log' + os.path.sep + 'item' + os.path.sep +'root.log' la = LogAnalyse(temp_file) error_log = open('error.log', 'w') a = '' for k, v in la.get_error_counts().items(): error_log.write(k.strip('\n').decode("utf8") + "出现次数:" + str(v) + '\n') a = a + k.strip('\n').decode("utf8") + "出现次数:" + str(v) + '\n' tempList = la.get_latest_log(5) # 初始化发送邮件类 sml = SendMail(EMAIL_USER, EMAIL_PASSWORD, EMAIL_HOST) # 设置邮件信息 text_type = 'plain' sml.setMailInfo(TO_EMAIL, EMAIL_HEADER, a, text_type, os.getcwd() + os.path.sep + 'error.log') sml.sendMail() for i in tempList: if 'Disconnected' in i: sml.reinitMailInfo() sml.setMailInfo(TO_EMAIL, "zookeeper挂了", "zookeeper又尼玛挂了,赶紧去看看啊!!!", text_type) sml.sendMail() break error_log.close()
class Checker(object): """ Is obtain data from province enterprise site today ? """ def __init__(self, dt=None): self.yesterday = datetime.datetime.now() - datetime.timedelta(1) if dt: self.yesterday = dt self.parent = settings.json_restore_path self.success = [] # {'name':'', "size':0, "rows":0} self.failed = [] # string list self.enterprise_count = 0 self.done = 0 self.html_template = os.path.join(os.path.dirname(__file__), "mail.html") self.send_mail = SendMail(settings.EMAIL_HOST, settings.EMAIL_PORT, settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD, ssl=True) def run(self): for province in sorted(province_crawler.keys()): enterprise_count = self._get_enterprise_count(province) data = { "name": province, "size": 0, "done": 0, "enterprise_count": enterprise_count, "done_ratio": 0 } self.enterprise_count += enterprise_count path = self._json_path(province) if os.path.exists(path) is False: self.failed.append(data) continue st = os.stat(path) data["done"] = self._get_rows(path) data["size"] = st[stat.ST_SIZE] data['done_ratio'] = float(data["done"]) / data["enterprise_count"] self.success.append(data) self.done += data["done"] #output settings.logger.error( "success %d, failed %d, enterprise count %d, done %d", len(self.success), len(self.failed), self.enterprise_count, self.done) for item in self.success: settings.logger.error( "\t%s: %d bytes, done %d, enterprise count %d", item['name'], item['size'], item["done"], item["enterprise_count"]) settings.logger.error("Failed province") for item in self.failed: settings.logger.error("\t%s", item['name']) self._report() def _json_path(self, province): path = os.path.join(self.parent, province, self.yesterday.strftime("%Y/%m/%d.json.gz")) return path def _get_rows(self, path): rows = 0 with gzip.open(path) as f: for line in f: if len(line.strip()) == 0: continue rows += 1 return rows def _get_enterprise_count(self, province): path = os.path.join(settings.enterprise_list_path, "%s.txt" % province) count = 0 with open(path) as f: for line in f: if line.split(",") < 3: continue count += 1 return count def _report(self): title = u"%s 企业信用爬取情况" % (self.yesterday.strftime("%Y-%m-%d")) content = self._render_html() to_admins = [x[1] for x in settings.ADMINS] self.send_mail.send_html(settings.EMAIL_HOST_USER, to_admins, title, content) def _render_html(self): html = "" with open(self.html_template) as f: html = f.read() template = jinja2.Template(html) return template.render(yesterday=self.yesterday.date(), success=self.success, failed=self.failed, host=socket.gethostname(), \ enterprise_count=self.enterprise_count, done=self.done)
elif (ultimo_valor[0] < ultimo_valor[1]): flag = 0 elif (flag == 2): if (ultimo_valor[0] > ultimo_valor[3]): canSend = True flag = 3 elif (ultimo_valor[0] < ultimo_valor[2]): flag = 1 elif (flag == 3): if (ultimo_valor[0] < ultimo_valor[3]): flag = 2 if (canSend): print("Va a sobrepasar el umbral") canSend = False SendMail('./png/examen2.png') #sendMailTo("*****@*****.**","Uso del CPU va a sobrepasar el umbral") time.sleep(1) con += 1 if (con == 599): print("Desea seguir monitoreando? Y/N: ") res = input() if (res == 'Y' or res == 'y' or res == "Yes"): con = 0 else: con = 600 else: createRRDTOOL("examen.rrd", '1551252880', '10') createUpdate('grupo_4cm1', 'localhost', '1.3.6.1.2.1.2.2.1.3.1', '161') print("Desea hacer otra operacion? Y/N: ")
def camera(): authenticator = IAMAuthenticator( apikey="ZQBgX2TPs2CmC3wNLWGEr7X3xDmq42sDsqTZVCsjdke8") flag = False obj = VisualRecognitionV4(version='2021-03-25', authenticator=authenticator) obj.set_service_url( service_url= 'https://api.us-south.visual-recognition.watson.cloud.ibm.com/instances/2fa93f7c-36f0-48f9-abb1-15845fbe94e1' ) while True: success, img = cap.read() cv2.imwrite('4.jpg', img) with open('4.jpg', 'rb') as honda_file, open('4.jpg', 'rb') as dice_file: result = obj.analyze( collection_ids=[ "17951ae7-0169-4551-ac19-a3864c7eed65", '17951ae7-0169-4551-ac19-a3864c7eed65' ], features=[AnalyzeEnums.Features.OBJECTS.value], images_file=[ FileWithMetadata(honda_file), ], threshold=0.15).get_result() #print(json.dumps(result, indent=2)) img = cv2.imread('4.jpg') try: left = result['images'][0]['objects']['collections'][0]['objects'][ 0]['location']['left'] top = result['images'][0]['objects']['collections'][0]['objects'][ 0]['location']['top'] width = result['images'][0]['objects']['collections'][0][ 'objects'][0]['location']['width'] height = result['images'][0]['objects']['collections'][0][ 'objects'][0]['location']['height'] img = cv2.imread('4.jpg') cv2.rectangle(img, (left, top), (left + width, top + height), (255, 0, 0), 2) name = result['images'][0]['objects']['collections'][0]['objects'][ 0]['object'] with open('data.txt', 'r') as f: f.write(str(name)) cv2.putText(img, name, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2) cv2.imshow('gasm', img) k = cv2.waitKey(30) & 0xff if k == 27: # press 'ESC' to quit break cv2.show('gasm', img) if name == 'gun' and flag == False: flag = True SendMail() except: cv2.imshow('gasm', img) # pass # cv2.show('gasm',img) cap.release() # cv2.waitKey(0) cv2.destroyAllWindows()
#!/usr/bin/env python3 from xls import Xlsx from sql import ODBCQuery from mail import SendMail xls = Xlsx('SPC_test') odbc = ODBCQuery('192.168.110.26') today_data = odbc.today_registers('P07') print(today_data) today_data = xls.query_modificator(today_data) xls.write_data(today_data) xls.close() smail = SendMail(['*****@*****.**' , '*****@*****.**' ] , 'SPC_test.xlsx' , subject = 'Today SPC 4G101 DP1 REGISTERS' ) smail.fast_send()
queryres = makeQuery( "select", "SELECT id, sb_id, solution, status, closure_code, date_done from requests where sb_id = \'" + call + "\'") # Создаем xml только по тем заявкам, которые есть в БД if queryres is not None: xml_instance = process_xmls.create_xml_for_instance(queryres, call) xml_instances = xml_instances + xml_instance # запись xml для отправки в файл final_outb_xml = process_xmls.add_xml_headers(xml_instances) process_xmls.write_to_file(final_outb_xml) # отправка письма if process_xmls.file_exist(outbound_xml_cfg): MailObjSend = SendMail(mail_subject, '-', mail_sber_email, outbound_xml_cfg) MailObjSend.send_email(MailObjSend.compose_email()) os.replace(os.path.join(xml_path_outb, xml_out_name_cfg), os.path.join(xml_done_path_outb, xml_out_name_cfg)) #чистка старых XML чтобы не перелимитить inodes files = os.listdir(xml_path_inb) for item in files: if item.endswith(".xml") and os.stat(os.path.join( xml_path_inb, item)).st_mtime < now - 60 * 86400: os.remove(join(xml_path_inb, item)) print('old file', item, 'has been deleted')