def login(): auth = request.authorization if not auth: return jsonify({'message': 'Authotization Not Provided!'}), 400 else: username = auth.username password = auth.password for user in users_list: if username == user.name and password == user.password: token = jwt.encode( { 'name': user.name, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=15) }, os.environ['SECRET_KEY']) mail = Mail( user.mail, 'Login', 'http://0.0.0.0:50/user-login?token={}'.format( token.decode('utf-8'))) mail.send() sms = SMS(user.phone, 'Someone Logged into your account') sms.send() return jsonify({'token': token.decode('utf-8')}), 200 else: return jsonify({'message': 'Username or Password is Invalid'}), 400 return jsonify({'message': 'Username or Password is Invalid'}), 400
def click_toolbtnEnviar(self, widget, data=None): self.datos = Data('mails/mail.txt') self.datos.file_to_open() texto = self.datos.read_to_file() texto = texto.replace("\n",",") sMail = Mail("*****@*****.**","[email protected],"+texto,"Hola mundo de leo","Si hola mundo de leo.") sMail.connect_to_mail("*****@*****.**","*****@*****.**") sMail.send_to_mail()
def init_test_set(): with open('test/desired/index.csv') as csvfile: desired_mail_reader = csv.reader(csvfile, delimiter=',', quotechar='\"') for row in desired_mail_reader: test_set.append(Mail(row)) with open('test/junk/index.csv') as csvfile: junk_mail_reader = csv.reader(csvfile, delimiter=',', quotechar='\"') for row in junk_mail_reader: test_set.append(Mail(row, True))
def _send(self, df): body = """<html> <head><style type="text/css" > th {border: 1px solid black;width: 65px;} td {border: 1px solid black;} table {border-collapse: collapse;border: 1px solid black;} </style> </head> <body>""" body += df.to_html(index=False) body += "</body></html>" Mail.send(body, subject='Konfliktplan', to=self.mailto)
def init_training_set(): with open('res/desired/index.csv') as csvfile: desired_mail_reader = csv.reader(csvfile, delimiter=',', quotechar='\"') for row in desired_mail_reader: desired_training_set.append(Mail(row, False)) with open('res/junk/index.csv') as csvfile: junk_mail_reader = csv.reader(csvfile, delimiter=',', quotechar='\"') for row in junk_mail_reader: junk_training_set.append(Mail(row, True))
def resend_activation(): """ Resend the activation token in the user's email. returns: 403 if any errors occur. 200 if successful, and user get the activation mail resent to him. """ req = request.get_json() try: user = (User.query .filter(User.email == req['email']) .one()) if user.is_active: return Error("User is already active", 403)() serializer = URLSafeSerializer(app.config['SECRET_KEY']) activation_token = serializer.dumps(user.email) activation_url = url_for('User.activate_user', activation_token=activation_token, _external=True) Mail(req['email'], subject_data={'name': user.full_name}, html_data={'token': activation_url}, text_data={'name': user.full_name}, template_root=SIGNUP_ACTIVATION ).send() return "" except NoResultFound: return Error("User with that email doesnt exist", 403)()
def forgot_password(): """ Sends Reset Password link to User's email address. User can change his/her password through the link mentioned in the Email. It won't be an endpoint, it will be a webpage :return: 403 if any errors, else return 200 """ req = request.get_json() serializer = URLSafeSerializer(app.config['SECRET_KEY']) try: user = User.query \ .filter(User.email == req['email']) \ .filter(User.is_active) \ .one() token = serializer.dumps(req['email']) reset_password_link = f"{request.url_root}reset_password?token={token}" Mail(user.email, subject_data={'name': user.full_name}, html_data={'token': reset_password_link}, text_data={'token': reset_password_link}, template_root=FORGOT_PASSWORD ).send() return "" except NoResultFound: return Error('Invalid Email Address', 403)()
def getMail(time): safe = random.choice([-1, 0, 1]) if safe == 1: return (Mail( random.choice(email_names) + '@' + random.choice(email_ats), random.choice(subject_safe), random.choice(body_safe), time, None), safe) if safe == -1: return (Mail( random.choice(email_names) + '@' + random.choice(email_ats), random.choice(subject_malitious), random.choice(body_malitious), time, None), safe) else: return (Mail( random.choice(email_names) + '@' + random.choice(email_ats), random.choice(subject_safe + subject_malitious), random.choice(body_safe + body_malitious), time, None), safe)
def PredictionProcess(logs, waitTime, logType): currTime = datetime.now() - timedelta(seconds=10) + timedelta(hours=4) startDate = currTime.strftime('%Y-%m-%dT%H:%M:%S') while True: uniqueAttacks = [] endDate = datetime.now() - timedelta(seconds=5) + timedelta(hours=4) endDate = endDate.strftime('%Y-%m-%dT%H:%M:%S') failStr = logType + ": No Data for the time period " + startDate + " - " + endDate + ".\n" #For sanity print that the process is running print(logType + " is running for time range: " + startDate + " - " + endDate + ".") if logType is "DB": initdf = logs.DatabaseLogs.MySQLLogs(startDate, endDate) if initdf is not None: df = logs.DatabaseLogs.Transform(initdf) model = Model('DB') predictedDF, uniqueAttacks = IdentifyAttacks(model, df) else: print(failStr) elif logType is "IIS": initdf = logs.WebLogs.IISLog(startDate, endDate) if initdf is not None: df = logs.WebLogs.Transform(initdf) model = Model('IIS') predictedDF, uniqueAttacks = IdentifyAttacks(model, df) else: print(failStr) if uniqueAttacks: print(logType + " has detected the following attacks: " + " ".join(uniqueAttacks) + "\n") notif = Mail( "ALERT! " + logType + " has detected attacks.", logType + " has detected the following attacks: " + " ".join(uniqueAttacks) + "\n") notif.send() startDate = endDate t.sleep(waitTime)
def contact_us(): """ Receives query message and sends it to the email in the request, and also "*****@*****.**" """ req = request.json del req['captcha_token'] email = req['email'] Mail([email, '*****@*****.**', '*****@*****.**'], req, req, req, CONTACT_US).send()
class SessionTokenLib(Base): ''' kargs key from config resource must be exactly same as request attribute name rtkey as attribute from config resource will return request string istead of return response string ''' def __init__(self,url): Base.__init__(self, url) self.url = url self.mail = Mail(url) def __getKey(self): key = 'This is insecure, change' encryptedKey = hashlib.sha512(key).hexdigest() encryptedKey = encryptedKey.decode('hex') return encryptedKey[0:16] def __decrypt(self, encrypedToken): obj = AES.new(self.__getKey(), AES.MODE_ECB) decode_hex = encrypedToken.decode('hex') crypt = obj.decrypt(decode_hex) return crypt def __encrypt(self, originToken): BS = 16 pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) #unpad = lambda s : s[0:-ord(s[-1])] obj = AES.new(self.__getKey(), AES.MODE_ECB) cryptToken = obj.encrypt(pad(originToken)) return cryptToken.encode('hex') def api_call_emptyfolder(self,**kargs): try: emptyFolderRes = self.mail.empty_folder(**kargs) domain = re.findall('http://(.*):', kargs['host'])[0] originToken = self.client.session.cookies._cookies[domain]['/']['webtoptoken'].value token = self.__decrypt(originToken) origin_expired_time = re.findall(',([0-9]+),', token)[0] return self.client.session.cookies._cookies[domain]['/']['webtopsessionid'].value + ' | ' + origin_expired_time except Exception,e: if 'AUTHENTICATION_REQUIRED' in str(e): return 'AUTHENTICATION_REQUIRED' else: raise e
def compararArchivos(self, button): archivo1 = self.Campos["File1"].GetEntryText() archivo2 = self.Campos["File2"].GetEntryText() with open(archivo1) as f1: f1_text = f1.read() with open(archivo2) as f2: f2_text = f2.read() comparacion = filecmp.cmp(archivo1, archivo2) if comparacion: self.Campos["Texto"].SetTextViewText("No hay diferencias") return d = Differ() result = list(d.compare(f1_text.splitlines(1), f2_text.splitlines(1))) self.Campos["Texto"].SetTextViewText(''.join(result)) mail = self.Campos["Email"].GetEntryText() if mail != "": Mail().send( mail, "Diferencia entre archivos", "Diferencia entre los archivos " + archivo1 + " y " + archivo2 + "\n\n" + ''.join(result))
def __init__(self): Tk.__init__(self) self.mail = Mail() self.source_var = StringVar() i = 0 while (i < 4): j = 0 while (j < 5): Label(self, text=" ").grid(row=i, column=j) j = j + 1 i = i + 1 label = Label(self, text="Nom Campagne").grid(row=1, column=2) #source = Label(self, text="fichier.csv").grid(row=2, column=2) self.source = Entry(self, textvariable=self.source_var).grid(row=2, column=2) action = Button(self, text="Fetch", command=lambda: self.actionListener_action()).grid( row=2, column=3)
def send_old_msg(path): l_files = ls1(path) if (len(l_files) <= 1): return else: m = Mail(TO_EMAIL, "Fallas remanentes") m.create_initialize_server() m.login() if (ARCH_DIA in l_files): l_files.remove(ARCH_DIA) for f in l_files: m.attach_file(f) remove(path + f) m.send_mail() m.quit_server()
def reply_comands(para, asunto = "Comando recibido"): m = Mail(para, asunto) m.create_initialize_server() m.login() if (asunto == "INFO"): m.attach_file() m.send_mail() m.quit_server()
# Call this routine if the info file has changed def on_file_change(): event.set() logging.debug('on_file_changed called') # Read the configuration file for mail and logfile settings parser = SafeConfigParser() parser.read(CONFIG_FILENAME) logger = logging.basicConfig(filename=parser.get('logging', 'logfile'), level=logging.DEBUG) # Prepare in case we need to send a mail if failure mail = Mail(parser.get('mail', 'to'), parser.get('mail', 'username'), parser.get('mail', 'password'), parser.get('mail', 'smtpserver'), ) # Setup a file event handler event_handler = MyEventHandler(logger, on_file_change, file2change = 'nisse.txt') observer = Observer() observer.schedule(event_handler, FILEWATCH_DIR, recursive=True) observer.start() # FIXME : Create a data object io = NewLoopDataObject() # FIXME : Create a protocol protocol = Protocol(io)
def sendLog(filename): body = MailLog.__readLogFile(filename) Mail.sendMail(body)
def __init__(self,url): Base.__init__(self, url) self.url = url self.mail = Mail(url)
def __init__(self, url): Mail.__init__(self, url) self.prefs = '' self.url = url
from email.mime.text import MIMEText from email.utils import formatdate from email import encoders from Crawler import Crawler from Mail import Mail from dotenv import load_dotenv load_dotenv() absolute_path = os.path.dirname(os.path.abspath(__file__)) f = open('target_urls', 'r') urls = f.readlines() f.close() mail = Mail() from_address = os.getenv('FROM_ADDRESS') to_address = os.getenv('TO_ADDRESS') for url in urls: site_name = re.sub('http(s)?://', '', url).replace('/', '').rstrip() current_file_path = os.path.join(absolute_path, 'image/' + site_name + '/current') previous_file_path = os.path.join(absolute_path, 'image/' + site_name + '/previous') current_file_name = current_file_path + '/screen.png' previous_file_name = previous_file_path + '/screen.png' utils.mkdir(current_file_path)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import smtplib import time import imaplib import sys import email from Mail import Mail from manejador_salidas import Manejador_Salidas FROM_EMAIL = '*****@*****.**' TO_EMAIL = '*****@*****.**' FROM_PWD = 'edi@pru01' SMTP_SERVER = 'imap.gmail.com' m = Mail(TO_EMAIL, "Fallas" + " " + time.strftime("%d/%m/%y")) m.create_initialize_server() m.login() m.attach_file() m.send_mail() m.quit_server()
def __sendMail(self): from Mail import Mail fileName = ntpath.basename(self.filePath) mail = Mail(self.allMails, self.allPhones, fileName) mail.CreateGUI()
def main(args): mail = Mail('*****@*****.**', '*****@*****.**', 'hoppa2lo', 'smtp.gmail.com') mail.send('from pi', 'Sylvia Wrethammar', [])
def __init__(self, url): Mail.__init__(self, url) self.prefs = "" self.url = url
from Mail import Mail import re import sys fh = open('emails.txt', 'r') list_of_addr = [] for line in fh: if re.match('^\w+(\.\w+)*@[a-zA-Z_]+?\.[a-zA-Z_]{2,6}$', line.rstrip()) != None: print line.rstrip(), ' is a valid address' list_of_addr.append(line.rstrip()) else: print line.rstrip(), ' is NOT a valid address' print list_of_addr #sys.exit(42) mail = Mail( list_of_addr, 'dummy_user', 'dummy_passwd', 'mail01.ad.bolagsverket.se', ) mail.send('test mail for jenkins')
from Mail import Mail DEST = '<DESTINATION-EMAIL>' FROM = '<YOUR-EMAIL>' PWD = '<YOUR-PASSWORD>' SMTP = '<YOUR-SMTP-SERVER>' PORT = 25 # Open File myfile = open('SynFB.py') # Lock the file fcntl.flock(myfile, fcntl.LOCK_EX | fcntl.LOCK_NB) # New Mail() instance MM = Mail() # Get hostname host = socket.gethostname() # Create log file logging.basicConfig(filename="logs/log.txt", level=logging.INFO, format='%(asctime)s:%(message)s') while 1 == 1: res = os.popen("netstat -ano | grep SYN_RECV | awk {'print $4,$5'} | awk -F: {'print $1,$2'} | sort -k 3 | uniq -c | sort -k 1 | tail -1").read() if res != "": str = res.rstrip() logging.info(str) # Transform a string into an array arr = str.split() # If the first element of array it's >= 50 SynFB alert the admin mail configured at the top of this script. if int(arr[0]) >= 50:
scraping.check_Info() logging.info("The scrapping is completed for the item '" + str(item[0]) + "'") logging.info("Old price : " + str(item[2][len(item[2]) - 1]) + "\nNew price : " + str(scraping.price)) except Exception as error: logging.warning("Error in the scrapper ->") logging.warning(error) if (scraping.price == 'Épuisé' & scraping.price != item[2][len(item[2]) - 1]): print('no') logging.info('Price is sold out') mail = Mail(item[5]) mail.send_mail(item[4], str(item[2][len(item[2]) - 1]), 'SOLD OUT', item[3]) scraping.price = 0.0 logging.info("Updating of the price for " + str(item[0]) + " in the database...") query = ("UPDATE item " + "SET prix = array_append(prix, " + str(scraping.price) + ")" + ", date_up = CURRENT_DATE" + " WHERE id_item = " + str(item[0])) cur.execute(query) elif (float(scraping.price) < float( item[2][len(item[2]) - 1])) & (float(scraping.price) != 0):
def sonoff(): print("sonoff") try: global state while True: r = requests.post( f"https://maker.ifttt.com/trigger/{sonoff_event[state]}/with/key/{YOUR_IFTTT_KEY}" ) if r.status_code == 200: break state = not state except Exception: print("UNABLE TO SEND COMMAND TO SONOFF\n") mail = Mail() def email(): print("email") mail.send() cap = cv2.VideoCapture( 'http://192.168.0.101:8000/stream.mjpg') # IP of the Raspberry_Camera def start_stream(): cv2.namedWindow('Video', cv2.WND_PROP_FULLSCREEN) cv2.setWindowProperty('Video', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)