Esempio n. 1
0
 def send_confirmation_email(self):
     Mailer.send_html_mail(
         "Welcome to Bezzist! Please Confirm Your Account",
         "mail/account_confirmation.html",
         {"confirmation_code": self.confirmation_code},
         [self.user.email],
     )
Esempio n. 2
0
def check_stories(args: argparse.Namespace) -> None:
    mailer = Mailer()
    for user_id in args.usernames:
        account = InstaAccount(user_id)
        if account.has_stories():
            mailer.send_mail_stories_found(user_id)
        logging.info(f'{user_id} stories were checked')
Esempio n. 3
0
def check_media(args: argparse.Namespace) -> None:
    mailer = Mailer()
    for user_id in args.usernames:
        account = InstaAccount(user_id)
        new_media = account.get_new_media()
        if new_media:
            mailer.send_mail_new_media_found(user_id, new_media)
        logging.info(f'{user_id} media were checked')
Esempio n. 4
0
 def confirm_user(self):
     """
     Confirms a user, authenticates and logges her in,
     and then send out an email to that user notifying
     her of the confirmation.
     """
     self.user.is_active = True
     self.user.save()
     Mailer.send_html_mail("Bezzist Account Confimation Email", "mail/account_confirmed.html", {}, [self.user.email])
     self.delete()
Esempio n. 5
0
def sendAsyncMail(data):
    """sends an email when feedback form is filled successfully"""
    mail_data = copy.deepcopy(data)
    for recipient in data['recipients']:
        mail_data['recipients'] = [recipient]
        mailer = Mailer(mail_data)
        Mailer.send()

    logger.info("Sent mail with celery")
    return '{} random users created with success!'.format(mail_data)
Esempio n. 6
0
def sendMailWithAttachment(request):
    unserializerFile = FileSerializer(data=request.data)
    response = copy.deepcopy(output_dict)
    try:
        if not unserializerFile.is_valid():
            logger.warning('Missing input parameters.: %s',
                           'connection reset',
                           extra=[])
            raise ValueError("Missing input parameters.")

        unserializer = EmailSerializer(data=unserializerFile.data['json_data'])

        if unserializer.is_valid():
            logger.info("Send Mail")
            if unserializer.data['async'] == True:
                task = sendAsyncMail.delay(unserializer.data)
                if task.id is not None:
                    response["data"] = task.id
                    response["status"] = "success"
                    sts = status.HTTP_200_OK
                else:
                    response["data"] = task.id
                    response["status"] = "failed"
                    sts = status.HTTP_422_UNPROCESSABLE_ENTITY
                return Response(response,
                                content_type='application/json',
                                status=sts)
            else:
                mailer = Mailer(unserializer.data)
                mailer.send()
                response["status"] = "success"
                return Response(response,
                                content_type='application/json',
                                status=status.HTTP_200_OK)
        else:
            response["error"] = unserializer.errors
            response["status"] = "failed"
            return Response(response,
                            content_type='application/json',
                            status=status.HTTP_400_BAD_REQUEST)
    except ParseError as ex:
        response["error"] = "Json request syntax error"
        response["status"] = 400
        return Response(response,
                        content_type='application/json',
                        status=status.HTTP_400_BAD_REQUEST)
    except Exception as ex:
        logger.error('Something went wrong!')
        response["error"] = str(ex)
        response["status"] = "failed"
        return Response(response,
                        content_type='application/json',
                        status=status.HTTP_400_BAD_REQUEST)
Esempio n. 7
0
def sendMail(request):
    #logger.info(request.data)
    response = copy.deepcopy(output_dict)
    try:
        if not request.data:
            logger.warning('Missing input parameters.: %s',
                           'connection reset',
                           extra=request.data)
            raise ValueError("Missing input parameters.")
        unserializer = EmailSerializer(data=request.data)
        logger.info(unserializer)

        if unserializer.is_valid():
            logger.info("Send Mail")
            if unserializer.data['async'] == True:
                task = sendAsyncMail.delay(unserializer.data)
                response["data"] = task.id
                response["status"] = "success"
                return Response(response,
                                content_type='application/json',
                                status=status.HTTP_200_OK)
            else:
                mailer = Mailer(unserializer.data)
                mailer.send()
                response["data"] = unserializer.data
                response["status"] = "success"
                return Response(response,
                                content_type='application/json',
                                status=status.HTTP_200_OK)
        else:
            response["error"] = str(unserializer.errors)
            response["status"] = "failed"
            return Response(response,
                            content_type='application/json',
                            status=status.HTTP_400_BAD_REQUEST)
    except Exception as ex:
        logger.error('Something went wrong!')
        response["error"] = str(ex)
        response["status"] = "failed"
        return Response(response,
                        content_type='application/json',
                        status=status.HTTP_400_BAD_REQUEST)
Esempio n. 8
0
    log.info("Current date: %s", getNow())
    log.info("Warn about upcoming expirations in less than %d days", alertbefore)

    cEmailConfig = MailConfig(mailconfigfile)
    if not cEmailConfig.configFileExists():
        log.warning("Oops, email config file %s doesn't exist yet", mailconfigfile)
        cEmailConfig.initConfigFile()
    else:
        log.info("Using mail config file %s", mailconfigfile)
        cEmailConfig.readConfigFile()

    if arguments['--test-mail']:
        log.info("Test Mail Configuration")
        content = []
        mailhandler = Mailer(mailconfigfile)
        info = ['certmon.py email test']
        mailhandler.sendmail(info, content, 'Email test')
        sys.exit(0)

    mailhandler = Mailer(mailconfigfile)
    warn_list = init_warn_mail_list(mailer=mailhandler)
    expired_list = init_expired_mail_list(mailer=mailhandler)
    changed_list = init_changed_mail_list(mailer=mailhandler)

    if arguments['--tor']:
        original_socket = socket.socket
        socks.set_default_proxy(socks.SOCKS5, "localhost", 9050)
        socket.socket = socks.socksocket
        log.info("socks public ip: " + str(urllib.request.urlopen('http://ip.42.pl/raw').read()))
Esempio n. 9
0
from flask import Blueprint
from flask import jsonify, render_template, request

import os
import sys

sys.path.insert(0,
                os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from .logger import SystemLogger

from mail.mailer import Mailer

log = Blueprint('log', __name__)
mail = Mailer()
systemLogger = SystemLogger()


@log.route("/api/log/error", methods=['GET'])
def send_err_file():
    attachment_file = systemLogger.zip_log_file()
    status_code = mail.send_email_with_attachment({}, attachment_file)
    print(status_code)

    if status_code == 202:
        msg = str(
            "The error log has communicated to the developer! Please wait for a reply."
        )
        return jsonify(msg=msg), 202
    else:
        msg = str("Unable to communicate error log!")
Esempio n. 10
0
    log.info("Warn about upcoming expirations in less than %d days",
             alertbefore)

    cEmailConfig = MailConfig(mailconfigfile)
    if not cEmailConfig.configFileExists():
        log.warning("Oops, email config file %s doesn't exist yet",
                    mailconfigfile)
        cEmailConfig.initConfigFile()
    else:
        log.info("Using mail config file %s", mailconfigfile)
        cEmailConfig.readConfigFile()

    if arguments['--test-mail']:
        log.info("Test Mail Configuration")
        content = []
        mailhandler = Mailer(mailconfigfile)
        info = ['certmon.py email test']
        mailhandler.sendmail(info, content, 'Email test')
        sys.exit(0)

    mailhandler = Mailer(mailconfigfile)
    warn_list = init_warn_mail_list(mailer=mailhandler)
    expired_list = init_expired_mail_list(mailer=mailhandler)
    changed_list = init_changed_mail_list(mailer=mailhandler)

    if arguments['--tor']:
        original_socket = socket.socket
        socks.set_default_proxy(socks.SOCKS5, "localhost", 9050)
        socket.socket = socks.socksocket
        log.info("socks public ip: " +
                 str(urllib.request.urlopen('http://ip.42.pl/raw').read()))
Esempio n. 11
0
    os.makedirs(DETECTION_OUTPUT_BASE_PATH)

EXECUTION_PATH = os.getcwd()
print('Running application at ', EXECUTION_PATH)

print('Initializing Camera...')
CAMERA = Camera(camera_index=CAMERA_INDEX)
print('Camera initialized')

print('Loading object detection model...')
# Download this model from https://github.com/OlafenwaMoses/ImageAI/releases/download/1.0/yolo.h5
OBJECT_DETECTOR = ObjectDetector(model_name=MODEL_NAME, model_path=MODEL_PATH)
print('Model loaded')

print('Initializing Mailer...')
MAILER = Mailer(smtp_server=SMTP_SERVER, smtp_port=SMTP_PORT)
MAILER.authenticate(username=USERNAME, password=PASSWORD)
print('Mailer initialized...')

IO.setwarnings(False)
IO.setmode(IO.BCM)
IO.setup(IR_PIN_NO, IO.IN)


def on_ir_state_changed(previous_state, current_state):
    if previous_state == 1 and current_state == 0:
        current_timestamp = '{0:%Y_%m_%d_%H_%M_%S}'.format(
            datetime.datetime.now())
        picture_file_name = 'capture_' + current_timestamp + '.jpg'
        camera_capture_file_path = os.path.join(CAMERA_CAPTURES_BASE_PATH,
                                                picture_file_name)