示例#1
0
def main():
    received_emails = EmailReceiver.get_unread_emails()
    validated_emails = EmailMessageValidator.validate_messages(received_emails)

    for email in validated_emails:
        __create_ics_file(email)
        EmailSender.send_email_from_gmail(email)
        Cleanup.clean_up()
        print "Sent out email! " + str(datetime.datetime.now(
        )) + " - " + email.from_address + " - " + email.subject
def check_availability(check_list):
    http = urllib3.PoolManager()
    for address in check_list:
        try:
            r = http.request('GET', address)
            if r.status == 500:
                es.send_notification(address)
                print("server is down, sending notification")
        except urllib3.exceptions.MaxRetryError:
            es.send_notification(address)
            print("server is down, sending notification")
示例#3
0
 def close_spider(self, spider):
     
     print "Here is Updated News !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
     
     # 去重发送邮件
     self.updatedNews -= self.news
     
     self.updatedNews = list(self.updatedNews)
     #print list(self.updatedNews)
     self.updatedNews.sort()
     EmailSender.send_mail("SpiderEmailTest", HTMLgenerator.generate(self.updatedNews))
     self.file.close()
 def __init__(self, pythonServer, clientSock, addr, sym_key):
     threading.Thread.__init__(self)
     self.security = Security()
     # reference to parent server
     self.pythonServer = pythonServer
     # new open socket  for client
     self.clientSock = clientSock
     # address connection : IP and Port
     self.addr = addr
     self.sym_key = None
     # Dictionary of ptotocols functions : Key - level  Value - referance to function
     #       self.operFnPtrDict = { 1 : self.oper1Fun, 2 : self.oper1Fun }
     self.AES = AESCrypt()
     self.DBManager = DBManager()
     self.KeyGenerator = KeyGenerator()
     self.EmailSender = EmailSender()
示例#5
0
    def sendEmail(self, recipients):

        mailer = EmailSender.EmailSender(os.getenv('EMAIL_USER'), mailServer=os.getenv('EMAIL_SMTP_SERVER'),
                                         mailPort=587, needLogin=True, useTls=True)

        if len(recipients) > 0:
            mailer.sendWithImages(self.title, recipients, self.mdLogger.toHtml(), self.emailTemplate,
                                  self.images, self.csvFiles)
示例#6
0
def main():
    global bookName, masterSheetName, emailColumn, config
    config = configparser.ConfigParser()
    config.read('config.ini')
    defConfig = config["DEFAULT"]

    bookName = str(defConfig["Workbook"])
    masterSheetName = str(defConfig["Master_Sheet"])
    emailColumn = str(defConfig["EmailId_column"])

    path = os.getcwd().replace('\'', '\\') + '\\'
    excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
    doc = excel.Workbooks.Open(path + bookName, ReadOnly=True)
    excel.Visible = False

    fromaddr = str(defConfig["Sender_EmailId"])
    #print(fromaddr)
    # creates SMTP session
    s = smtplib.SMTP('smtp.gmail.com', 587)

    # start TLS for security
    s.starttls()

    # Authentication
    s.login(fromaddr, str(defConfig["Sender_Email_Password"]))

    pdfFiles = glob.glob("protected" + '\*.pdf')

    #print(pdfFiles,path)
    for file in pdfFiles:
        empName = file[:-4]
        empName = empName.split("\\")[-1:][0]

        email = getEmailId(empName, doc)
        #print("sending {} to {}".format(file,email))
        EmailSender.sendEmail(email, file, s, defConfig)

    doc.Close(SaveChanges=False)
    excel.Quit()

    # terminating the session
    s.quit()
def check_price():

    page = requests.get(URL, headers=headers)

    soup = BeautifulSoup(page.content, 'html.parser')

    #print(soup.prettify())

    title = soup.find(id="productTitle").get_text()
    price = soup.find(id='priceblock_ourprice').get_text()
    price_converted = float(price[2:7].replace(",", ""))

    print(title.strip())

    print(price.strip())

    print(price_converted)

    if (price_converted <= target):

        EmailSender.email_anuppu()
def main(influxServer, influxDB, testMode=False):
    mqtt_thd   = startMQTTThread (testMode)
    time.sleep(5)
    pyslm_thd  = startPyslurmThread()
    time.sleep(5)
    ifx_thd    = startInfluxThread(mqtt_thd,pyslm_thd, testMode)

    while True:
       if not mqtt_thd.is_alive():
          EmailSender.sendMessage ("ERROR: MQTTReader thread is dead. Restart it!", "Check it!")
          logger.error("ERROR: MQTTReader thread is dead. Restart it!")
          mqtt_thd   = startMQTTThread(testMode)
          ifx_thd    = startInfluxThread(mqtt_thd,pyslm_thd, testMode)
       if not pyslm_thd.is_alive():
          EmailSender.sendMessage ("ERROR: MQTTReader thread is dead. Restart it!", "Check it!")
          logger.error("ERROR: Pyslurm thread is dead. Restart it!")
          pyslm_thd  = startPyslurmThread()
          ifx_thd    = startInfluxThread(mqtt_thd,pyslm_thd, testMode)
       if not ifx_thd.is_alive():
          EmailSender.sendMessage ("ERROR: MQTTReader thread is dead. Restart it!", "Check it!")
          logger.error("ERROR: Influx thread is dead. Restart it!")
          ifx_thd    = startInfluxThread(mqtt_thd,pyslm_thd, testMode)
          logger.info("New Influx thread {}.".format(ifx_thd))
          
       time.sleep (600)  # check every 10 minutes
    def __init__(self, pythonServer, clientSock, addr, sym_key):
        threading.Thread.__init__(self)
        self.security = Security()
        # reference to parent server
        self.pythonServer = pythonServer
        # new open socket  for client
        self.clientSock = clientSock
        # address connection : IP and Port
        self.addr = addr
        self.sym_key = None
        # Dictionary of ptotocols functions : Key - level  Value - referance to function
 #       self.operFnPtrDict = { 1 : self.oper1Fun, 2 : self.oper1Fun }
        self.AES=AESCrypt()
        self.DBManager = DBManager()
        self.KeyGenerator = KeyGenerator()
        self.EmailSender = EmailSender()
    def _showDialog(self):
        text, ok = QtGui.QInputDialog.getText(self, 'Email Input',
            'Insira seu email')

        if ok:
            emailsender = EmailSender('smtp.gmail.com', 587)
            print(str(text))
            try:
                emailsender.login("*****@*****.**", "QpG-6ey-EJu-DwP")
                print self.path_to_email
                emailsender.send_with_attachment(str(text), "Teste de envio com software", "body", self.path_to_email)
                emailsender.quit()
            except Exception, e:
                print "Error!"
                print str(e)
示例#11
0
def quickTest(emailSender, emailReceiver, **kwargs):
    recipients = [emailReceiver]

    mdLogger = FileLogger.MarkdownLogger('test.md')

    mdLogger.
    print("# Pager duty alert test email")

    mdLogger.
    print("\n\n")
    mdLogger.printTableTitle(['date', 'pool', 'error count'])
    mdLogger.printTableRow(['2018-8-1', 'east-china', 3000])
    mdLogger.printTableRow(['2018-8-2', 'east-china', 4000])
    mdLogger.printTableRow(['2018-8-3', 'east-china', 5000])
    mdLogger.printTableRow(['2018-8-4', 'east-china', 6000])
    mdLogger.printTableRow(['2018-8-5', 'east-china', 7000])

    mdLogger.
    print("\n\n")

    sender = EmailSender.EmailSender(emailSender, **kwargs)

    sender.sendWithImages("Production Alert Email", recipients, mdLogger.toHtml(), "../template/email_template.j2")
示例#12
0
    from time import gmtime, strftime, sleep
    import sys

    sys.path.append("../SendEmail")
    from EmailOptions import EmailOptions
    import EmailSender

    Image = DetectMotionFromWebcam(15000, 50)
    try:
        while (Image is not None):
            cv2.imwrite("MotionDetectedImage.png", Image)

            EmailOptions = EmailOptions()
            EmailOptions.LoadOptionsFromXml("HaltEmailOptions.eo")
            EmailOptions.ParseOptionsFromCommandLine()
            EmailSender.SendEmail(
                EmailOptions.FromAddress,
                EmailOptions.ToAddresses,
                strftime("%Y-%m-%d %H:%M:%S ", gmtime()) + EmailOptions.Subject,
                EmailOptions.Body,
                "*.png",
                EmailOptions.FromAddressPassword)

            # Wait 10 minutes before trying again
            sleep(600)
            Image = DetectMotionFromWebcam(15000, 50)

    except KeyboardInterrupt:
        sys.exit()
示例#13
0
    findings = re.findall(regex_to_get_hour,
                          txt.decode('utf-8', errors='ignore'), re.DOTALL)
    if len(findings) > 0:
        # the first finding is enough for this example
        return findings[0]

    return None


# load configurations
fd = open(email_settings, 'r')
configs = json.load(fd)

# create the logger and sender
log = Log("monitor").get()
sender = EmailSender(configs['smtp'], configs['port'], configs['email'],
                     configs['password'], log)

previous = None
while True:
    fake_browser_headers = {
        'User-Agent':
        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.3'
    }
    req = Request(url=website, headers=fake_browser_headers)
    contents = urlopen(req).read()

    result = parse(contents)

    msg = "Time now [{}]".format(result)
    subject = "WEBSITE MONITOR"
class  SessionWithClient(threading.Thread):
    # -----  D A T A  -----    

    # -----  F U N C T I O N S  -----
    #-----------------------------------------------------------------------------------------------
    #  class definition function
    #-----------------------------------------------------------------------------------------------
    def __init__(self, pythonServer, clientSock, addr, sym_key):
        threading.Thread.__init__(self)
        self.security = Security()
        # reference to parent server
        self.pythonServer = pythonServer
        # new open socket  for client
        self.clientSock = clientSock
        # address connection : IP and Port
        self.addr = addr
        self.sym_key = None
        # Dictionary of ptotocols functions : Key - level  Value - referance to function
 #       self.operFnPtrDict = { 1 : self.oper1Fun, 2 : self.oper1Fun }
        self.AES=AESCrypt()
        self.DBManager = DBManager()
        self.KeyGenerator = KeyGenerator()
        self.EmailSender = EmailSender()

    #-----------------------------------------------------------------------------------------------
    # Receive data from input stream from server socket by loop
    # Each step read LEN_UNIT_BUF bytes
    # After loop we want to get only first part of split by '\r\n'
    # Return : content of input stream from server socket
    #-----------------------------------------------------------------------------------------------  
    def recv_buf(self):
        #content=""
        #while True:
        #    data = self.clientSock.recv(LEN_UNIT_BUF)
        #    if not data:  break
        #    content += data
        #print content
        #return content.split(END_LINE)[0]
        return self.clientSock.recv(LEN_UNIT_BUF).split(END_LINE)[0]

    #-----------------------------------------------------------------------------------------------
    # the function for verify Hello at beginning of communication in data
    #-----------------------------------------------------------------------------------------------  
    def verify_hello(self, data):
        if len(data):
            # Verify Hello at beginning of communication
            if not (data == PROT_START ):
                self.clientSock.send(ERROR_SOCKET + END_LINE + "Error in protocol establishment ( 'Hello' )" + END_LINE)
                time.sleep(0.5)
                self.clientSock.close()
                return False
            return True
        return False
  

    #-----------------------------------------------------------------------------------------------
    #  Operation  1   ---    
    #
    # Description: 
    #-----------------------------------------------------------------------------------------------
    def send(self, data):
        data2= self.AES.encryptAES(self.sym_key,data)
        self.clientSock.send(data2)
    #-----------------------------------------------------------------------------------------------

    def rec(self):
        data = self.clientSock.recv(2048)
        print data

        data2 = self.AES.decryptAES(self.sym_key, data)
        return data2
    #-----------------------------------------------------------------------------------------------

    #-----------------------------------------------------------------------------------------------
    # the main function of the THREAD sessionWithClient class
    #-----------------------------------------------------------------------------------------------



    def run(self):
        try:
            # Wait message beginning of communication from client
            data = self.recv_buf()
            if not self.verify_hello(data):
                return
            self.clientSock.send(PROT_START + END_LINE)
           # self.pythonServer.gui.guiSock.send("Hello " +  self.addr[0] + "#")   # to GUI
            self.sym_key = self.security.key_exchange(self.clientSock)#  in Security
            ip = self.addr[0]
            folder = self.DBManager.folder_by_ip(ip)
            self.send(folder)
            data2 = ""
            while data2!="You failed to login 3 times. Access to folder denied." or data2 != "login successful":
                print data2
                data2 = self.rec()
                message=self.DBManager.run(data2,ip)
                self.send(message)

            if "login failed" in data2:
                self.EmailSender.send(self.DBManager.email_by_ip(ip),folder, ip)
            self.clientSock.close()

        except socket.error , e:
            print str(e) + END_LINE + ERROR_SOCKET + "  from " + str(self.addr[0])
        except Exception as e:
            print str(e) + END_LINE + ERROR_EXCEPT + "  from " + str(self.addr[0])
示例#15
0
from string import Template  # 문자열 템플릿 모듈
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from time import sleep
import EmailContent
import EmailSender
import modeltest_aws

os.chdir('/home/ec2-user/srservice')
'''filelist=os.listdir('./image')
print(filelist)'''

str_host = 'smtp.gmail.com'
num_port = 587  # SMTP Port
emailSender = EmailSender.EmailSender(str_host, num_port)

str_subject = 'Processed Image arrived'  # e메일 제목
template = Template("""<html>
                            <head></head>
                            <body>
                                Hi ${NAME}.<br>
                                <img src="cid:my_image1"><br>
                                This is a processed image output.
                            </body>
                        </html>""")
template_params = {'NAME': 'Everyone'}

path_dir = './image'
result_dir = './ResultOutput'
示例#16
0
@author: Erik
"""

import requests
import json
import os.path
import SkuParser
import OpponentPicker
import Voobly
import VooblyMatchHistory
import EmailSender
import SpreadSheet

SkuParser = SkuParser.SkuParser()
OpponentPicker = OpponentPicker.OpponentPicker()
emailer = EmailSender.Mailer()
SheetWriter = SpreadSheet.SSWriter()

print("Currently, this grabs all orders ever (at 50+ orders we will need to rework it due to squarespace API), writes all of them to two databases: FiveToFightCustomers.csv & FiveToFightsOrders.csv\n Enhancements:\n\tRead from database - append new orders\n\tOnly do weekly orders\n\tHandle 50+ orders")
# ------------------- Get information about orders from squarespace
beginTime = "2018-05-10T12:00:00Z"
stoppingTime = "2018-05-17T12:30:00Z"
url = "https://api.squarespace.com/1.0/commerce/orders?modifiedAfter="+beginTime+"&modifiedBefore="+stoppingTime
header = dict(authorization= "Bearer aa96549b-a198-47fe-b260-33a0f3dbf2be")
response = requests.get(url, headers = header)
dictionary= json.loads(response.text)
orders = dictionary['result']

# Load in local Customer database
customersDB = []
示例#17
0
"""
Shawn 11/21/2018
程序主入口
"""

import EmailSender
import ReadXLSX
import TableMaker


if __name__ == "__main__":
    sender = EmailSender.EmailSender("*****@*****.**", "password", "Shawn")
    reader = ReadXLSX.ReadXLSX("test.xlsx")
    info_pack = reader.get_emails_pack()

    for one in info_pack:
        content = TableMaker.TableMaker.pack_up(
            one.name,
            one.title,
            one.manager,
            one.date_str,
            one.personal_part
        )
        status = sender.send_mail(
            one.email_address,
            content,
            one.name,
            one.title)
        if status:
            print(f"{one.name} successful")
        else:
class SessionWithClient(threading.Thread):
    # -----  D A T A  -----

    # -----  F U N C T I O N S  -----
    #-----------------------------------------------------------------------------------------------
    #  class definition function
    #-----------------------------------------------------------------------------------------------
    def __init__(self, pythonServer, clientSock, addr, sym_key):
        threading.Thread.__init__(self)
        self.security = Security()
        # reference to parent server
        self.pythonServer = pythonServer
        # new open socket  for client
        self.clientSock = clientSock
        # address connection : IP and Port
        self.addr = addr
        self.sym_key = None
        # Dictionary of ptotocols functions : Key - level  Value - referance to function
        #       self.operFnPtrDict = { 1 : self.oper1Fun, 2 : self.oper1Fun }
        self.AES = AESCrypt()
        self.DBManager = DBManager()
        self.KeyGenerator = KeyGenerator()
        self.EmailSender = EmailSender()

    #-----------------------------------------------------------------------------------------------
    # Receive data from input stream from server socket by loop
    # Each step read LEN_UNIT_BUF bytes
    # After loop we want to get only first part of split by '\r\n'
    # Return : content of input stream from server socket
    #-----------------------------------------------------------------------------------------------
    def recv_buf(self):
        #content=""
        #while True:
        #    data = self.clientSock.recv(LEN_UNIT_BUF)
        #    if not data:  break
        #    content += data
        #print content
        #return content.split(END_LINE)[0]
        return self.clientSock.recv(LEN_UNIT_BUF).split(END_LINE)[0]

    #-----------------------------------------------------------------------------------------------
    # the function for verify Hello at beginning of communication in data
    #-----------------------------------------------------------------------------------------------
    def verify_hello(self, data):
        if len(data):
            # Verify Hello at beginning of communication
            if not (data == PROT_START):
                self.clientSock.send(
                    ERROR_SOCKET + END_LINE +
                    "Error in protocol establishment ( 'Hello' )" + END_LINE)
                time.sleep(0.5)
                self.clientSock.close()
                return False
            return True
        return False

    #-----------------------------------------------------------------------------------------------
    #  Operation  1   ---
    #
    # Description:
    #-----------------------------------------------------------------------------------------------
    def send(self, data):
        data2 = self.AES.encryptAES(self.sym_key, data)
        self.clientSock.send(data2)

    #-----------------------------------------------------------------------------------------------

    def rec(self):
        data = self.clientSock.recv(2048)
        print data

        data2 = self.AES.decryptAES(self.sym_key, data)
        return data2

    #-----------------------------------------------------------------------------------------------

    #-----------------------------------------------------------------------------------------------
    # the main function of the THREAD sessionWithClient class
    #-----------------------------------------------------------------------------------------------

    def run(self):
        try:
            # Wait message beginning of communication from client
            data = self.recv_buf()
            if not self.verify_hello(data):
                return
            self.clientSock.send(PROT_START + END_LINE)
            # self.pythonServer.gui.guiSock.send("Hello " +  self.addr[0] + "#")   # to GUI
            self.sym_key = self.security.key_exchange(
                self.clientSock)  #  in Security
            ip = self.addr[0]
            folder = self.DBManager.folder_by_ip(ip)
            self.send(folder)
            data2 = ""
            while data2 != "You failed to login 3 times. Access to folder denied." or data2 != "login successful":
                print data2
                data2 = self.rec()
                message = self.DBManager.run(data2, ip)
                self.send(message)

            if "login failed" in data2:
                self.EmailSender.send(self.DBManager.email_by_ip(ip), folder,
                                      ip)
            self.clientSock.close()

        except socket.error, e:
            print str(e) + END_LINE + ERROR_SOCKET + "  from " + str(
                self.addr[0])
        except Exception as e:
            print str(e) + END_LINE + ERROR_EXCEPT + "  from " + str(
                self.addr[0])
示例#19
0
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from EmailSender import *

emailsender = EmailSender('smtp.gmail.com', 587)

try:
    emailsender.login("fromaddr", "password")
    emailsender.send_with_attachment("toaddr", "subject", "body", "file_path")
    emailsender.quit()
except Exception, e:
    print "Error!"
    print str(e)
示例#20
0
 def __init__(self, jsonParams):
     self.tasks = jsonParams['tasks']
     self.emailSender = EmailSender.Sender(jsonParams['gmailInfo'])