Esempio n. 1
0
def mail_compose():
    if request.method == 'POST':
        content = request.form['content']
        if content:
            receiver = User.query.get(request.form['receiver'])
            subject = request.form['subject']
            mail = Mail(content=content,
                        subject=subject,
                        sender=g.user,
                        receiver=receiver)
            db.session.add(mail)
            db.session.commit()
            # generate automated Administrator response
            if receiver.id == 1:
                content = "I would be more than happy to help you with that. Unforunately, the person respsonsible for that is unavailable at the moment. We'll get back with you soon. Thanks."
                mail = Mail(content=content,
                            subject='RE:' + subject,
                            sender=receiver,
                            receiver=g.user)
                db.session.add(mail)
                db.session.commit()
            flash('Mail sent.')
            return redirect(url_for('ph_bp.mail'))
    users = User.query.filter(User.id != g.user.id).order_by(
        User.username.asc()).all()
    return render_template('mail_compose.html', users=users)
Esempio n. 2
0
 def test_method_post_text(self):
     # attachments = []
     # attachments = self.get_attachments()
     mail = Mail(
         track_open=False,
         track_html_link=False,
         track_text_link=True,
         activate_tracking=False,
         subject='Mittepro-py client test',
         # send_at='2019-05-04 08:00:00',
         message_text=self.variables['message_text'],
         message_html=self.variables['message_html'],
         from_=self.variables['from_'],
         recipient_list=self.variables['recipients'],
         # context={'GMERGE': 'Mah oia Soh'},
         # context_per_recipient=self.variables['']
     )
     try:
         response = self.mittepro.send(mail)
         if response and 'emails_enviados' in response:
             self.assertGreater(len(response['emails_enviados']), 0)
         else:
             self.assertIsNotNone(response)
     except Exception as e:
         print("Exception", e)
Esempio n. 3
0
 def t2est_method_post_template(self):
     # attachments = []
     # attachments = self.get_attachments()
     mail = Mail(
         track_open=True,
         track_html_link=False,
         track_text_link=False,
         activate_tracking=True,
         subject='Mittepro-py client test',
         send_at='2019-05-04 08:00:00',
         from_=self.variables['from_'],
         recipient_list=self.variables['recipients'],
         template_slug='tpl-teste',
         use_tpl_default_name=True,
         use_tpl_default_email=True,
         use_tpl_default_subject=True,
         context={'GMERGE': 'Mah oia Soh'},
         context_per_recipient=self.variables['context_per_recipient'],
         # attachments=attachments
     )
     # print mail.get_payload()
     response = self.mittepro.send_template(mail)
     print("response", response)
     if response and 'emails_enviados' in response:
         self.assertGreater(len(response['emails_enviados']), 0)
     else:
         self.assertIsNotNone(response)
Esempio n. 4
0
def send_mail(header, content, to_email, from_email):
    data = {
        "personalizations": [
            {
            "to": [
                {
                "email": to_email
                }
            ],
            "subject": header
            }
        ],
        "from": {
            "email": from_email
        },
        "content": [
            {
            "type": "text/html",
            "value": content
            }
        ]
    }
    
    try:
        response = sg.client.mail.send.post(request_body=data)
        error = None
    except Exception as ex:
        error = str(ex)
    finally:
        mail = Mail(header, content, response.status_code, error, to_email, from_email)
        db.session.add(mail)
        db.session.commit()
Esempio n. 5
0
    def eomReceived(self):
        header = ""
        header_done = False
        message = ""
        for line in self.lines:
            if header_done:
                message += line + "\r\n"
                continue
            if line == "":
                header_done = True
                continue
            header += line + "\r\n"
            thisHeader = line.split(": ", 1)
        headers = Parser().parsestr(header)
        self.lines = None

        connect()
        domain = get_or_create_domain(self.user.dest.domain)
        user = get_or_create_user(self.user.dest.local, domain)
        Mail(user=user,
             ts=datetime.datetime.now(),
             envelopeHeloHost=self.user.helo[0],
             envelopeHeloAddress=self.user.helo[1],
             envelopeFrom=str(self.user.orig),
             envelopeTo=str(self.user.dest),
             headerFrom=headers["from"] or "",
             headerSubject=headers["subject"] or "",
             headers=header,
             body=message)

        return defer.succeed(None)
Esempio n. 6
0
 def test_method_post_template(self):
     # attachments = []
     # attachments = self.get_attachments()
     mail = Mail(
         # headers={'X_CLIENT_ID': 1},
         recipient_list=self.variables['recipients'],
         # from_=self.variables['from_'],
         template_slug=self.variables['template_slug'],
         context={'foobar': True},
         context_per_recipient=self.variables['context_per_recipient'],
         subject="Just a test - Sended From Client AT 09",
         # remove comment if you gonna tested
         # message_text=self.variables["message_text"],
         # message_html=self.variables["message_html"],
         # use_tpl_default_subject=True,
         use_tpl_default_email=True,
         # use_tpl_default_name=True,
         # activate_tracking=True,
         # get_text_from_html=True,
         # attachments=attachments
     )
     # print mail.get_payload()
     response = self.mittepro.send_template(mail)
     print "response", response
     if response and 'emails_enviados' in response:
         self.assertGreater(len(response['emails_enviados']), 0)
     else:
         self.assertIsNotNone(response)
Esempio n. 7
0
 def test_method_post_text(self):
     # attachments = []
     # attachments = self.get_attachments()
     mail = Mail(
         recipient_list=self.variables['recipients'],
         message_text='Mah oia só https://pypi.org/',
         # remove comment if you gonna tested
         # message_html=self.variables["message_html"],
         from_=self.variables['from_'],
         # batchs=self.variables['batchs'],
         # time_between_batchs=self.variables['time_between_batchs'],
         subject="Just a test - Sended From_ Client AT 09",
         send_at='2018-11-16 10:45',
         # send_at='2018-02-05 09:32:00',
         activate_tracking=False,
         track_open=False,
         track_html_link=False,
         track_text_link=False,
         # attachments=attachments
     )
     response = self.mittepro.send(mail)
     print "response", response
     if response and 'emails_enviados' in response:
         self.assertGreater(len(response['emails_enviados']), 0)
     else:
         self.assertIsNotNone(response)
Esempio n. 8
0
 def post(self):
     user = str(users.get_current_user())
     besedilo = self.request.get("sporocilo")
     naslovnik = self.request.get("naslovnik")
     sporocilo = Mail(besedilo=besedilo, avtor=user, naslovnik=naslovnik)
     sporocilo.put()
     return self.redirect_to("poslji")
Esempio n. 9
0
def register():
    if request.method == 'POST':
        username = request.form['username']
        if not User.query.filter_by(username=username).first():
            password = request.form['password']
            if password == request.form['confirm_password']:
                if is_valid_password(password):
                    user_dict = {}
                    for k in request.form:
                        if k not in ('confirm_password', ):
                            user_dict[k] = request.form[k]
                    user = User(**user_dict)
                    db.session.add(user)
                    db.session.commit()
                    # create default welcome message
                    sender = User.query.get(1)
                    receiver = user
                    subject = 'Welcome to PwnedHub!'
                    content = "We're glad you've chosen PwnedHub to help you take your next step in becoming a more efficient security consultant. We're here to help. If you have any questions or concerns, please don't hesitate to reach out to this account for assistance. Together, we can make seurity testing great again!"
                    mail = Mail(content=content,
                                subject=subject,
                                sender=sender,
                                receiver=receiver)
                    db.session.add(mail)
                    db.session.commit()
                    flash('Account created. Please log in.')
                    return redirect(url_for('ph_bp.login'))
                else:
                    flash('Password does not meet complexity requirements.')
            else:
                flash('Passwords do not match.')
        else:
            flash('Username already exists.')
    return render_template('register.html', questions=QUESTIONS)
Esempio n. 10
0
 def post(self):
     user = users.get_current_user()
     if user:
         posiljatelj = user.email().lower()
         naslovnik = self.request.get('naslovnik').replace('<script>', '').replace('</script>', '').lower()
         zadeva = self.request.get('zadeva').replace('<script>', '').replace('</script>', '')
         sporocilo = self.request.get('sporocilo').replace('<script>', '').replace('</script>', '')
         podatki = Mail(posiljatelj=posiljatelj, naslovnik=naslovnik, zadeva=zadeva, sporocilo=sporocilo, poslano=True)
         podatki.put()
         return self.redirect_to('poslano')
def convert_to_model(parsed_mail):
    mail = Mail()
    mail.message_id = parsed_mail.message_id
    mail.body = parsed_mail.body
    mail.subject = parsed_mail.subject
    mail.date = parsed_mail.date
    for recipient in recipients_from_list_of_tuples(parsed_mail.to,
                                                    parsed_mail.cc,
                                                    parsed_mail.bcc):
        mail.to.add(recipient)
    mail.sender.add(recipient_from_tuple(parsed_mail.from_[0]))
    return mail
Esempio n. 12
0
    def post(self, request, *args, **kwargs):
        receiverId = User.objects.get_by_natural_key(
            request.POST['receiver']).userprofile

        mail = Mail()
        mail.from_user = self.request.user.userprofile
        mail.to_user = receiverId
        mail.title = request.POST['title']
        mail.content = request.POST['content']
        mail.create_time = datetime.now()
        mail.view = 0
        mail.save()
        return HttpResponseRedirect('.')
Esempio n. 13
0
    def post(self):
        zadeva = self.request.get("zadeva")
        vsebina = self.request.get("vsebina")
        email = self.request.get("email")
        zadeva = cgi.escape(zadeva)
        vsebina = cgi.escape(vsebina)
#patricija
        cookie_value = self.request.cookies.get("uid")
        idposiljatelja, _, _ = cookie_value.split(":")
        idposiljatelja = int(idposiljatelja)
        prejemnik = Uporabnik.gql("WHERE email='"+ email +"'").get()
        idprejemnika = prejemnik.key.id()
        sporocilo = Mail(idprejemnika=idprejemnika, idposiljatelja=idposiljatelja, email=email,zadeva=zadeva, vsebina=vsebina)
        sporocilo.put()

        self.redirect("prikazi_vsa_sporocila.html")
Esempio n. 14
0
    def post(self):
        user = users.get_current_user()

        od = self.request.get(utils.escape("od"))
        if len(od) == 0:
            od = user.email()
        do = self.request.get(utils.escape("do"))
        sporocilo = self.request.get(utils.escape("sporocilo"))
        usr_id = user.user_id()
        email = Mail(od=od, do=do, sporocilo=sporocilo, user_ID=usr_id)

        if email is not None:
            email.put()
            info = {"user": user, "uspeh": u"Sporočilo uspešno poslano"}

            return self.render_template("vremail.html", params=info)
Esempio n. 15
0
def mail_compose(id=0):
    if request.method == 'POST':
        content = request.form['content']
        if content:
            receiver = User.query.get(request.form['receiver'])
            subject = request.form['subject']
            mail = Mail(content=content,
                        subject=subject,
                        sender=g.user,
                        receiver=receiver)
            db.session.add(mail)
            db.session.commit()
            flash('Mail sent.')
            return redirect(url_for('mail'))
    users = User.query.filter(User.id == id).all() or User.query.filter(
        User.id != g.user.id).order_by(User.username.asc()).all()
    return render_template('mail_compose.html', users=users)
Esempio n. 16
0
 def get_messages(self) -> List[ElementMail]:
     for el in self._browser.find_by_css_selector(
             'article.message.hasSender', True):
         el.click()
         [sender_el] = el.find_by_css_selector(
             'div.summary > div.summary-left > div.meta > div > div.from-value',
             True)
         [body_el
          ] = el.find_by_css_selector('div.frame.message-frame > div', True)
         [username_el] = sender_el.find_by_tag('strong')
         [email_el] = sender_el.find_by_tag('em')
         yield ElementMail(
             element=el,
             mail=Mail(sender=UserInfo(
                 username=username_el.text.replace('<',
                                                   '').replace('>', ''),
                 email=email_el.text.replace('<', '').replace('>', '')),
                       body=Body(body_el.text)))
Esempio n. 17
0
 def post(self):
     """
     For Sending mails to moderators and administrators
     """
     data = api.payload
     form = ContactForm.from_json(data)
     if form.validate():
         username = data.get('username')
         phone_number = data.get('phone_number')
         email = data.get('email')
         body = data.get('body')
         db.session.add(
             Mail(username=username,
                  phone_number=phone_number,
                  email=email,
                  body=body))
         db.session.commit
         return {"success": "Your message was recieved, thank you"}, 201
     return {"message": form.errors}, 400