コード例 #1
0
    def send_welcome_email(self):
        subject = 'Welcome to Rise'

        user = self.account.primary_user

        context = {
            'user': user,
            'user_profile': next(iter(UserProfile.objects.filter(user=user).select_related()), None),
        }

        send_html_email('emails/welcome_ach', context, subject, settings.DEFAULT_FROM_EMAIL, [user.email])
コード例 #2
0
 def handle(self, *args, **options):
     now = arrow.now().datetime
     lastweek = now - timedelta(days=7)
     flights = Flight.objects.filter(status=Flight.STATUS_COMPLETE,departure__gte=lastweek)
     flightreservationlist = FlightReservation.objects.filter(status=FlightReservation.STATUS_COMPLETE,flight=flights)
     passenger_list = Passenger.objects.filter(flight_reservation_id__in = flightreservationlist).values('email').distinct().all()
     context = {
     }
     subject = "Your Recent Rise Flight Experience"
     for email_obj in passenger_list:
         context['email'] = email_obj.get('email')
         send_html_email('emails/flight_feedback_email', context, subject, settings.DEFAULT_FROM_EMAIL, [email_obj.get('email')])
コード例 #3
0
    def send_rise_notification_email(self, error_message):
        """
        Sends a notification of failed payment to Rise
        """
        subject = 'Subscription Payment Failed'

        context = {
            'error_message': error_message,
            'account': self.account,
        }

        send_html_email('emails/admin_payment_failed_notification', context, subject, settings.DEFAULT_FROM_EMAIL, settings.PAYMENT_FAILED_NOTIFICATION_LIST)
コード例 #4
0
    def send_rise_notification_email(self):
        """
        Sends a notification of failed payment to Rise
        """
        subject = 'Payment Failed'

        context = {
            'error_message': self.failure_message,
            'account': self.account,
        }

        send_html_email('emails/admin_payment_failed_notification', context, subject, settings.DEFAULT_FROM_EMAIL, ['*****@*****.**'])
コード例 #5
0
    def handle(self, *args, **options):
        subject = options.get('subject')

        to_email = options.get('to')
        if options.get('litmus'):
            to_list = [to_email, '*****@*****.**']
        else:
            to_list = [to_email]

        base_template = options.get('template')

        user = None
        try:
            UserModel = get_user_model()
            user = UserModel.objects.get(email=to_email)
        except:
            pass

        context = {
            'site': Site.objects.get_current(),
            'protocol': 'http',
            'user': user,
        }

        json_template = '%s.json' % base_template
        try:
            context_json = json.loads(render_to_string(json_template))
            context.update(context_json)
        except TemplateDoesNotExist:
            pass

        context_json = options.get('context')
        context_json = json.loads(context_json)
        context.update(context_json)

        backend = smtp.EmailBackend(host='smtp.mandrillapp.com',
                                    port=587,
                                    username='******',
                                    password='******')

        send_html_email(base_template,
                        context,
                        subject,
                        settings.DEFAULT_FROM_EMAIL,
                        to_list,
                        fail_silently=False,
                        connection=backend)

        print 'Email sent to %s' % ', '.join(to_list)
コード例 #6
0
ファイル: tasks.py プロジェクト: gayathrik04Aws/Rise
def send_html_email_task(base_template,
                         context,
                         subject,
                         from_email,
                         recipient_list,
                         attachments=None,
                         attachment_files=None,
                         headers=None,
                         connection=None,
                         fail_silently=False,
                         bcc=None):
    try:
        send_html_email(base_template, context, subject, from_email,
                        recipient_list, attachments, attachment_files, headers,
                        connection, fail_silently, bcc)
    except SMTPServerDisconnected as exc:
        raise send_html_email_task.retry(exc=exc)
コード例 #7
0
    def send_welcome_receipt_email(self):
        """
        Send a receipt email for this charge

        If this charge has an invoice, send the receipt email from the invoice instead
        """

        subject = 'Receipt for Your Payment to Rise, LLC.'

        user = self.account.primary_user

        context = {
            'charge': self,
            'user': user,
            'user_profile': next(iter(UserProfile.objects.filter(user=user).select_related()), None),
        }

        send_html_email('emails/welcome_receipt', context, subject, settings.DEFAULT_FROM_EMAIL, [user.email])
コード例 #8
0
    def send_subscription_reminder(self):
        subject = 'Rise Statement Available'

        user = self.account.primary_user
        payment_method = None
        payment_account = self.account.get_default_payment()

        if payment_account is None:
            payment_method = 'account does not have a credit card or bank account associated with it. Please add a new credit card or bank account, and this card/account'
        elif isinstance(payment_account, BankAccount):
            payment_method = 'bank account %s ending with %s' % (payment_account.bank_name, payment_account.last4)
        else:
            payment_method = 'credit card ending with %s that expires on %s/%s' % (payment_account.last4, payment_account.exp_month, payment_account.exp_year)

        context = {
            'subscription': self,
            'payment_method': payment_method,
            'user': user,
        }

        send_html_email('emails/subscription_reminder', context, subject, settings.DEFAULT_FROM_EMAIL, [user.email])
コード例 #9
0
    def send_payment_failed_email(self,payment_method_id=None):
        subject = 'Rise Payment Failed'

        user = self.account.primary_user

        payment_method = None

        if payment_method_id is not None:
            bill_pay_methd = BillingPaymentMethod.objects.filter(id=payment_method_id).first()
            if bill_pay_methd is not None and bill_pay_methd.payment_method == BillingPaymentMethod.PAYMENT_ACH:
                bank_account = BankAccount.objects.filter(billing_payment_method=bill_pay_methd).first()
                if bank_account:
                    payment_method = 'bank account %s ending with %s' % (bank_account.bank_name, bank_account.last4)
                else:
                    logger.exception('No bank account on file for subscription #%d.' % self.pk)
            elif bill_pay_methd is not None:
                card = Card.objects.filter(billing_payment_method=bill_pay_methd).first()
                if card:
                    payment_method = 'credit card ending with %s that expires on %s/%s' % (card.last4, card.exp_month, card.exp_year)
                else:
                    logger.exception('No credit card on file for subscription #%d.' % self.pk)
            else:
                logger.exception('No credit card on file for subscription #%d.' % self.pk)
        else:
            payment = self.account.get_default_payment()
            if payment is not None and  isinstance(payment, BankAccount):
                if not payment.verified:
                    payment_method = 'bank account %s ending with %s is not verified' % (payment.bank_name, payment.last4)
                else:
                    payment_method = 'bank account %s ending with %s' % (payment.bank_name, payment.last4)
            elif payment is not None and isinstance(payment, Card):
                payment_method = 'credit card ending with %s that expires on %s/%s' % (payment.last4, payment.exp_month, payment.exp_year)
            else:
                logger.exception('No credit card on file for subscription #%d.' % self.pk)
        context = {
            'payment_method': payment_method,
            'user': user,
        }

        send_html_email('emails/payment_failed', context, subject, settings.DEFAULT_FROM_EMAIL, [user.email])
コード例 #10
0
    def save(self, *args, **kwargs):
        """
        Generates a one-use only link for resetting password and sends to the
        user.
        """
        email = self.cleaned_data['email']
        users = User.objects.filter(email__iexact=email, is_active=True)

        for curr_user in users:
            # Make sure that no email is sent to a user that actually has
            # a password marked as unusable
            if not curr_user.has_usable_password():
                continue

            context = {
                'email': curr_user.email,
                'uid': urlsafe_base64_encode(force_bytes(curr_user.pk)),
                'user': curr_user,
                'token': default_token_generator.make_token(curr_user),
            }
            subject = 'Rise Password Reset'

            send_html_email('emails/password_reset', context, subject, settings.DEFAULT_FROM_EMAIL, [curr_user.email])