def get_send_mail_return_value(self, *args, **kwargs):
        subject = kwargs.get('subject', '')
        from_email = kwargs.get('from_email', settings.MAIL_FROM_EMAIL)
        bcc = kwargs.get('bcc')
        cc = kwargs.get('cc')
        reply_to = kwargs.get('reply_to', [])
        files_attachment = kwargs.get('attachments', [])
        mail = EmailMessage(
            subject=subject,
            bcc=bcc,
            cc=cc,
            body=str(kwargs),
            from_email=from_email,
            to=kwargs.get('recipients'),
            reply_to=reply_to,
        )
        mail.content_subtype = 'html'

        for file_tmp in files_attachment:
            if isinstance(file_tmp, MIMEBase):
                mail.attach(file_tmp)
            else:
                try:
                    mail.attach(file_tmp.name, file_tmp.read(),
                                file_tmp.content_type)
                except:  # noqa
                    mail.attach_file(file_tmp)
        mail.send()
Example #2
0
def send_email_to_members(request):
    if request.method == 'POST':
        form = SendMessageForm(request.POST or None)
        if form.is_valid():
            subject = form.cleaned_data["subject"]
            message_text = form.cleaned_data["message"]
            user = User.objects.filter(is_active=True,
                                       church=request.user.church,
                                       groups__name="Member")
            emailto = [user.email for user in user]
            from_email = settings.DEFAULT_FROM_EMAIL
            chunks = divide_chunks(emailto, 50)
            for chunk in chunks:
                n = 50
                mail = EmailMultiAlternatives(subject,
                                              message_text,
                                              from_email, [],
                                              bcc=chunk)
                mail.send()
            return redirect('/')
        else:
            return HttpResponse(
                'Something went wrong.  Please click Back on your browser to try again.'
            )
    else:
        form = SendMessageForm()
    template_name = "form.html"
    context = {"form": form, "title": "Email all Members"}
    return render(request, template_name, context)
Example #3
0
def activate_prayer_circle(request):
    if request.method == 'POST':
        form = PrayerCircleForm(request.POST or None)
        if form.is_valid():
            prayer = form.cleaned_data["prayer"]
            subject = "Please Start the Prayer Circle"
            church = request.user.church
            user = User.objects.filter(church=church)
            #Course.objects.filter( course_teacher__email__contains=request.user.email):
            emailto = [user.email for user in user]
            mail = EmailMessage(
                subject="Please Start the Prayer Circle",
                body=prayer,
                from_email='*****@*****.**',
                to=emailto,
            )
            mail.send(fail_silently=False)
            return redirect('/')
        else:
            return HttpResponse(
                'Something went wrong.  Please click Back on your browser to try again.'
            )
    else:
        form = PrayerCircleForm()
    template_name = "form.html"
    context = {"form": form, "title": "Activate Church Prayer Circle"}
    return render(request, template_name, context)
Example #4
0
def dashboard_old(request, **kwargs):
    user = request.user
    user_detail = UserDetails.objects.get_or_create(user=user)
    user_detail = user_detail[0]
    if user_detail.user_type == "Tutor":
        return redirect("tutor-dashboard")

    details = Orders.objects.filter(user=user)
    labs = LabOrders.objects.filter(user=user)
    if request.method == 'POST':
        desc = request.POST.get('desc')
        reference_material = request.FILES['reference_material']
        assignment = request.FILES['assignment']
        deadline = request.POST.get('deadline')
        subject = request.POST.get('subject')
        order = Orders(user=user,
                       status='Awaiting Confirmation',
                       desc=desc,
                       reference_material=reference_material,
                       assignment=assignment,
                       deadline=deadline,
                       subject=subject)
        order.save()
        id = order.pk
        id += 1000
        order.order_id = f'TC-HW-{id}'
        order.save()
        print("Order successful, order id : {}".format(order.order_id))
        send_message(request,
                     "Order successful, order id : {}".format(order.order_id))
        c = {
            'user': user.username,
            'order_id': order.order_id,
            'subject': order.subject,
            'deadline': deadline,
        }
        email = user.email
        order_id = order.order_id
        email_msg = render_to_string('order.txt', c)
        mail = EmailMessage(
            subject=f'Order Created - {order_id}',
            body=email_msg,
            from_email='TutorChamps Student Support <*****@*****.**>',
            to=[email, '*****@*****.**'])
        mail.send()
        serializers = OrderSerializers(order)
        return JsonResponse(serializers.data)
    print(details)
    _context = {
        'details': details,
        'user': user,
        'user_detail': user_detail,
        'labs': labs,
        'ordered': False
    }
    if "order" in kwargs.keys():
        if kwargs["order"] == "order-successful":
            _context["ordered"] = True
    print(_context["ordered"])
    return render(request, 'dash_board.html', _context)
Example #5
0
def send_async_email(email_data):
    """Background task to send an email with Flask-Mail."""
    msg = Message(email_data['subject'],
                  sender=app.config['MAIL_DEFAULT_SENDER'],
                  recipients=[email_data['to']])
    msg.body = email_data['body']
    with app.app_context():
        mail.send(msg)
Example #6
0
def forgotpassword_template():
    form = ForgotForm(request.form)
    if form.validate_on_submit():
        msg = Message('Reset your password with the link below: ',
                      recipients=[form.email])
        mail.send(msg)
    return render_template("forgotpassword_template.html",
                           name=session.get('name'),
                           username=session.get('username'),
                           form=form)
Example #7
0
 def form_valid(self, form):
     data = form.cleaned_data
     subject = "Contact Form Message"
     message = """
             From: %s
             Phone: %s
             Message: %s"""%(data['name'],data['phone'], data['message'])
     recp = ['*****@*****.**', '*****@*****.**', '*****@*****.**']
     sender = "*****@*****.**"
     send(subject,message,sender,recp)
     return super(ContactPage, self).form_valid(form)
Example #8
0
 def mail_owner(self, project, subject, message, fail_silently=False, connection=None,
                html_message=None):
     """Sends a message to the admins, as defined by the ADMINS setting."""
     if not settings.ADMINS:
         return
     mail = EmailMultiAlternatives('%s%s' % (settings.EMAIL_SUBJECT_PREFIX, subject),
                                   message, settings.SERVER_EMAIL, [project.owner.email],
                                   connection=connection)
     if html_message:
         mail.attach_alternative(html_message, 'text/html')
     mail.send(fail_silently=fail_silently)
Example #9
0
 def new_function(*args):
   self = args[0]
   caller = 'TODO'
   try:
     original_function(*args)
   except Exception, e:
     mail = django.core.mail.EmailMessage('Test failed: {callingclass} - {caller}'.format(  caller=caller, callingclass=self.__class__.__name__ ), 'Test has failed at {0}'.format(datetime.datetime.now().isoformat()), '*****@*****.**', django.conf.settings.E2E_TESTS['RECIPIENTS'])
     if self._path_to_image:
       with open(self._path_to_image, 'r') as f:
         mail.attach('error.png', f.read(), 'image/png')
     mail.send()
     raise e
Example #10
0
def send_mail(subject, template, recipients, context={}):

    if not isinstance(recipients, (list, tuple)):
        recipients = (recipients,)

    html = get_template(template).render(context={
        'subject': subject,
        'recipients': recipients,
        **context
    })

    send(subject, '', settings.DEFAULT_FROM_EMAIL, recipients, html_message=html)
Example #11
0
 def form_valid(self, form):
     evnt = form.save(commit=False)
     evnt.confirmed = False
     evnt.save()
     subject = "Event \"%s\" Submitted"%evnt.name
     message = """
     View/edit this event at http://menomnom.com/admin/events/event/%s/
             """%(evnt.id)
     recp = ['*****@*****.**', '*****@*****.**', '*****@*****.**']
     sender = "*****@*****.**"
     send(subject,message,sender,recp)
     return super(SubmitEventPage, self).form_valid(form)
Example #12
0
 def form_valid(self, form):
     data = form.cleaned_data
     user = User.objects.get(email=data['email'])
     try:
         pr = models.PasswordReset.objects.get(user=user)
     except models.PasswordReset.DoesNotExist:
         pr = models.PasswordReset(user=user)
     pr.save()
     message = "Your password can be reset at: %s"%("http://menomnom.com/forgot/"+pr.slug+"/")
     send("Menomnom | Password reset",
         message=message,
         from_email="*****@*****.**",
         recipient_list=[data['email']]
     )
     return super(PasswordReset, self).form_valid(form)
Example #13
0
def send_mail(to=[],
              subject='',
              html_template='',
              txt_template='',
              context={},
              from_email=settings.DEFAULT_FROM_EMAIL):
    """Send mail to the all contacts
    """
    from django.core import mail
    from django.core.mail import EmailMultiAlternatives
    from django.template.loader import render_to_string
    _to = to

    context.update({
        'SITE_URL': settings.SITE_URL,
    })

    text = render_to_string(txt_template, context)
    html = render_to_string(html_template, context)

    result = None

    with mail.get_connection() as connection:
        mail = EmailMultiAlternatives(
            subject=subject,
            body=text,
            from_email=from_email,
            to=_to,
            connection=connection,
        )
        mail.attach_alternative(html, "text/html")
        result = mail.send(fail_silently=True)
    return result
Example #14
0
def labordes(request):
    user = request.user
    uname = user.username
    user = User.objects.get(username=uname)
    user_detail = UserDetails.objects.get_or_create(user=user)
    user_detail = user_detail[0]
    if request.method == 'POST':
        lab_manual = request.FILES['lab_manual']
        report_guidline = request.FILES['report_guideline']
        lab_data = request.FILES['lab_data']
        reference_material = request.FILES['reference_material']
        deadline = request.POST.get('deadline')
        subject = request.POST.get('subject')
        lab = LabOrders(user=user,
                        reference_material=reference_material,
                        deadline=deadline,
                        subject=subject,
                        lab_manual=lab_manual,
                        report_guidline=report_guidline,
                        lab_data=lab_data,
                        status='Awaiting Confirmation',
                        assigned=False)
        lab.save()
        id = lab.pk
        id += 1000
        lab.order_id = f'TC-lab-{id}'
        lab.save()
        c = {
            'user': user.username,
            'order_id': lab.order_id,
            'subject': lab.subject,
            'deadline': deadline,
        }
        email = user.email
        order_id = lab.order_id
        email_msg = render_to_string('order.txt', c)
        mail = EmailMessage(
            subject=f'Order Created - {order_id}',
            body=email_msg,
            from_email='TutorChamps Student Support <*****@*****.**>',
            to=[email, '*****@*****.**'])
        mail.send()
        serializers = LabSerializers(lab)
        return JsonResponse(serializers.data)
Example #15
0
def live_session_orders(request):
    user = request.user
    user_detail = UserDetails.objects.get_or_create(user=user)
    user_detail = user_detail[0]
    if request.method == 'POST':
        desc = request.POST.get('desc')
        assignment = request.FILES['assignment']
        deadline = request.POST.get('deadline')
        duration = request.POST.get('Duration')
        subject = request.POST.get('subject')
        reference_material = request.FILES['reference_material']
        order = Orders(user=user,
                       status='Awaiting Confirmation',
                       desc=desc,
                       assignment=assignment,
                       deadline=deadline,
                       subject=subject,
                       duration=duration,
                       reference_material=reference_material)
        order.save()
        id = order.pk
        id += 1000
        order.order_id = f'TC-LS-{id}'
        order.save()
        serializers = OrderSerializers(order)
        c = {
            'user': user.username,
            'order_id': order.order_id,
            'subject': order.subject,
            'deadline': deadline,
        }
        email = user.email
        order_id = order.order_id
        email_msg = render_to_string('order.txt', c)
        mail = EmailMessage(
            subject=f'Order Created - {order_id}',
            body=email_msg,
            from_email='TutorChamps Students Support <*****@*****.**>',
            to=[email, '*****@*****.**'])
        mail.send()
        return JsonResponse(serializers.data)
Example #16
0
    def test_build_base_case(self):
        # Testing replacement successfuly from user entity
        body = "Hello {}NAME{}, This is an example of populate body email".format(
            self.escape, self.escape)
        mt = MailTemplate.build(MailTemplate,
                                name="template-email1",
                                body=body,
                                sender="Camilo Verdugo <*****@*****.**>",
                                subject="Subject emails")
        user = User.objects.get(first_name="User1322")
        mail_fields = {
            'sender': mt.sender,
            'receptor_to': "User <*****@*****.**>",
            'body': mt.body,
            'subject': mt.subject
        }
        body_args = {'user': user}
        mail, nf_keys, nf_args = Mail.build(Mail, MailTemplateEntity, None,
                                            mail_fields, body_args)
        self.assertEqual(type(mail), Mail)
        self.assertEqual(
            mail.body,
            "Hello {}, This is an example of populate body email".format(
                user.first_name))
        self.assertEqual(nf_keys, [])
        self.assertEqual(nf_args, [])

        # Testing successfull delivery plain mode
        mail.send()
        self.assertEqual(type(mail.sent_at), datetime.datetime)

        # Test no specify receptor_to
        mail_fields = {
            'sender': mt.sender,
            'body': mt.body,
            'subject': mt.subject
        }
        body_args = {'user': user}
        mail, nf_keys, nf_args = Mail.build(Mail, MailTemplateEntity, None,
                                            mail_fields, body_args)
        self.assertEqual(mail, None)
Example #17
0
File: app.py Project: gallonc/rep
def contact():
    """User can send e-mail via contact form"""

    if request.method == 'POST':
        """User sent an email request"""
        msg = Message("Feedback", recipients=[app.config['MAIL_USERNAME']])
        msg.body = "You have received new feedback from {0} {1} <{2}>.\n\n {3}".format(
            request.form['first-name'], request.form['last-name'],
            request.form['mail-address'], request.form['comment-field'])
        try:
            mail.send(msg)
            msg = "We will respond as soon as possible."
            category = "success"
        except Exception as err:
            msg = str(err)
            category = "danger"

        resp = {'feedback': msg, 'category': category}
        return make_response(jsonify(resp), 200)

    elif request.method == 'GET':
        """User is viewing the page"""
        return render_template('pages/contact.html')
Example #18
0
 def save(self,**kwargs):
     subject = "Location Mistake Report"
     to_addrs = [i[1] for i in settings.ADMINS]
     send(subject, self.message, '*****@*****.**', to_addrs)
     super(LocationMistake, self).save(**kwargs)
Example #19
0
def signup(request):
    if request.user.is_authenticated:
        return redirect("old-user")
    data = {}
    if request.method == 'POST':
        email = request.POST.get('email')
        password = request.POST.get('password')
        try:
            User.objects.get(email=email)
            #messages.info(request, 'This email is already registered')
            data = {
                'status': 'error',
                'msg': 'This email is already registered'
            }
            return JsonResponse(data)
        except ObjectDoesNotExist:

            uname = email.replace('@', '_')
            user = User(username=uname, email=email)
            user.set_password(password)
            user.save()
            staff = User.objects.filter(groups__name='Students Help')
            room = create_room(staff)
            room.members.add(user)
            room.save()
            user_detail = UserDetails(user=user, user_type="Student")
            user_detail.save()
            if request.session.get('session_key'):
                username = request.session['session_key']
                unknown_user = User.objects.get(username=username)
                try:
                    laborder = LabOrders.objects.get(user=unknown_user)
                    laborder.user = user
                    laborder.save()
                    c = {
                        'user': user.username,
                        'order_id': laborder.order_id,
                        'subject': laborder.subject,
                        'deadline': laborder.deadline
                    }
                    order_id = laborder.order_id
                    email_msg = render_to_string('order.txt', c)
                    mail = EmailMessage(
                        subject=f'Order Created - {order_id}',
                        body=email_msg,
                        from_email=
                        'TutorChamps Student Support <*****@*****.**>',
                        to=[email, '*****@*****.**'])
                    mail.send()
                except:
                    order = Orders.objects.get(user=unknown_user)
                    order.user = user
                    order.save()
                    c = {
                        'user': user.username,
                        'order_id': order.order_id,
                        'subject': order.subject,
                        'deadline': order.deadline
                    }
                    order_id = order.order_id
                    print(order.deadline)
                    email_msg = render_to_string('order.txt', c)
                    mail = EmailMessage(
                        subject=f'Order Created - {order_id}',
                        body=email_msg,
                        from_email=
                        'TutorChamps Student Support <*****@*****.**>',
                        to=[email, '*****@*****.**'])
                    mail.send()
                finally:
                    unknown_user.delete()
                    del request.session['session_key']
                    #messages.success(request, 'you have registered successfully')
                    usr = authenticate(username=uname, password=password)
                    login(request, usr)
                    data = {'status': 'ok', 'msg': 'User created successfully'}
                    print("Order successful, order id : {}".format(
                        order.order_id))
                    send_message(
                        request,
                        "Order successful, order id : {}".format(order_id))
                    data['order'] = "YES"
                    #return redirect('new-user-ordered', order="order-successful")
                    return JsonResponse(data)
            else:
                #messages.success(request, 'you have registered successfully')
                usr = authenticate(username=uname, password=password)
                login(request, usr)
                data = {'status': 'ok', 'msg': 'User created successfully'}
                c = {'user': user.username}
                email_msg = render_to_string('signup.txt', c)
                mail = EmailMessage(
                    subject='Welcome to TutorChamps',
                    body=email_msg,
                    from_email=
                    'TutorChamps Student Support <*****@*****.**>',
                    to=[email])
                mail.send()
                return JsonResponse(data)
            print(usr)

    print("here2")
    return render(request, 'signup.html', data)
Example #20
0
def send_mail(email_to, subject, content):
    try:
        snd = send(subject, content, '*****@*****.**', email_to)
    except SMTPRecipientsRefused:
        snd = 0
    return snd
Example #21
0
def signin(request):
    if request.method == "POST":
        email = request.POST.get('email')
        email = email.lower()
        password = request.POST.get('password')
        uname = email.replace('@', '_')
        print(uname)
        user = authenticate(username=uname, password=password)
        if user:
            new_user = User.objects.get(username=uname)
            #userdetail = UserDetails.objects.get(user=new_user)
            #if userdetail.user_type=="Student":
            if user.is_active:
                login(request, user)
                user = request.user
                detail = UserDetails.objects.get_or_create(user=user)
                if request.session.get('session_key'):
                    username = request.session['session_key']
                    unknown_user = User.objects.get(username=username)
                    try:
                        laborder = LabOrders.objects.get(user=unknown_user)
                        laborder.user = user
                        id = laborder.pk
                        id += 1000
                        laborder.order_id = f'TC-lab-{id}'
                        laborder.save()
                        c = {
                            'user': user.username,
                            'order_id': laborder.order_id,
                            'subject': laborder.subject,
                            'deadline': laborder.deadline,
                        }
                        order_id = laborder.order_id
                        email_msg = render_to_string('order.txt', c)
                        mail = EmailMessage(
                            subject=f'Order Created - {order_id}',
                            body=email_msg,
                            from_email=
                            'TutorChamps Student Support <*****@*****.**>',
                            to=[email, '*****@*****.**'])
                        mail.send()
                    except:
                        order = Orders.objects.get(user=unknown_user)
                        order.user = user
                        order.save()
                        c = {
                            'user': user.username,
                            'order_id': order.order_id,
                            'subject': order.subject,
                            'deadline': order.deadline,
                        }
                        order_id = order.order_id
                        email_msg = render_to_string('order.txt', c)
                        mail = EmailMessage(
                            subject=f'Order Created - {order_id}',
                            body=email_msg,
                            from_email=
                            'TutorChamps Student Support <*****@*****.**>',
                            to=[email, '*****@*****.**'])
                        mail.send()
                    unknown_user.delete()
                    del request.session['session_key']
                    messages.success(request, f"Welcome Back {email}")
                return redirect('old-user')
            else:

                data = {
                    'status': 'error',
                    'msg': 'Your Account has been deactivated'
                }
                return JsonResponse(data)
            #else:
            #    data = {"status":"error","msg":"Not Allowed"}
            #    return JsonResponse(data)
        else:
            print('no user')
            data = {'status': 'error', 'msg': "Invalid email or password"}
            return JsonResponse(data)
    return render(request, 'login.html')