Beispiel #1
0
def send_email_from_template(to_profile, template_name, global_merge_vars=None, merge_vars=None, from_name=None, from_email=None, subject=None, sent_before_control=False):

    log_type = template_name

    if sent_before_control:
        if mail_is_sent_before(to_profile, log_type):
            return False

    if to_profile.mail_subscription is False:
        return False

    msg = EmailMessage(
        to=[to_profile.email, ]
    )

    msg.template_name = template_name

    if not global_merge_vars:
        global_merge_vars = {}

    msg.global_merge_vars = global_merge_vars

    if merge_vars:
        msg.merge_vars = merge_vars

    msg.subject = subject

    if not from_email:
        from_email = settings.MAILING_FROM_EMAIL

    if not from_name:
        from_name = settings.MAILING_FROM_NAME

    msg.from_email = from_email
    msg.from_name = from_name

    msg.send()

    mandrill_id, mandrill_status = "-1", "unknown"
    try:
        if msg.mandrill_response and len(msg.mandrill_response):
            mandrill_id, mandrill_status = msg.mandrill_response[0].get("_id"), msg.mandrill_response[0].get("status")
    except Exception as error:
        pass

    mail_log = MailLog(
        to=to_profile,
        type=log_type,
        mandrill_response_id=mandrill_id,
        mandrill_status=mandrill_status,
    )

    mail_log.save()
Beispiel #2
0
def _send_activation_mail(gk_user):
    if not is_user_can_send_email(gk_user):
        return
    template_invoke_name = settings.VERFICATION_EMAIL_TEMPLATE
    mail_message = EmailMessage(to=(gk_user.email,),
                                from_email=GUOKU_MAIL, )
    uidb64 = urlsafe_base64_encode(force_bytes(gk_user.id))
    token = verification_token_generator.make_token(gk_user)
    reverse_url = reverse('register_confirm',
                          kwargs={'uidb64': uidb64,
                                  'token': token})
    verify_link = "http://{0:s}{1:s}".format(settings.SITE_DOMAIN, reverse_url)
    sub_vars = {'%verify_link%': (verify_link,)}
    mail_message.template_invoke_name = template_invoke_name
    mail_message.from_name = GUOKU_NAME
    mail_message.sub_vars = sub_vars
    mail_message.send()
Beispiel #3
0
def _send_forget_password_mail(gk_user, domain=None, token_generator=None,
                               template_invoke_name=None):
    if not is_user_can_send_email(gk_user):
        return
    domain = domain or settings.SITE_DOMAIN
    template_invoke_name = template_invoke_name or settings.RESET_PASSWORD_TEMPLATE
    token_generator = token_generator or default_token_generator

    uid = urlsafe_base64_encode(force_bytes(gk_user.pk))
    token = token_generator.make_token(gk_user)
    mail_message = EmailMessage(to=(gk_user.email,),
                                from_email=GUOKU_MAIL, )
    reverse_url = reverse('web_password_reset_confirm',
                          kwargs={'uidb64': uid, 'token': token})
    reset_link = "{0:s}{1:s}".format(domain, reverse_url)
    sub_vars = {'%name%': (gk_user.nickname,),
                '%reset_link%': (reset_link,)}
    mail_message.template_invoke_name = template_invoke_name
    mail_message.sub_vars = sub_vars
    mail_message.from_name = GUOKU_NAME
    mail_message.send()