示例#1
0
def mailing():
    EMAIL_TITLE = 'T30-GZ Performance Tracker'
    FROM_EMAIL = settings.EMAIL_HOST_USER
    TO_ADDRESS = '*****@*****.**'
    tm_list = get_TM_list()
    tl_list = get_TL_list()
    tml = list()
    tll = list()
    for i in tm_list:
        tml.append(i['name'])
    dic_tm = collections.Counter(tml)
    for i in tl_list:
        tll.append(i['name'])
    dic_tl = collections.Counter(tll)
    context_tml = {}
    context_tll = {}
    for key in dic_tm:
        context_tml[key] = dic_tm[key]
    for key in dic_tl:
        context_tll[key] = dic_tl[key]
    # 发送的html模板的名称
    email_template_name = 'chartshow/email.html'
    t = loader.get_template(email_template_name)
    html_content = render_to_string('chartshow/email.html', {
        'context_tml': context_tml,
        'context_tll': context_tll
    })
    msg = EmailMultiAlternatives(EMAIL_TITLE, html_content, FROM_EMAIL,
                                 [TO_ADDRESS])
    if msg.get_connection() is not None:
        msg.attach_alternative(html_content, "text/html")
        status = msg.send()
    else:
        status = "No connection to mail server"
示例#2
0
def send(from_mail, subject, html_content, text_content, to):
    if type(to) is str:
        to = [to, ]

    msg = EmailMultiAlternatives(subject, text_content, from_mail, to)
    connection = msg.get_connection()
    msg.attach_alternative(html_content, "text/html")

    mail_res = True
    if subject and html_content and from_mail and to:
        try:
            msg.send()
            # message: 'Thanks, your email was sent'
        except BadHeaderError:
            # message: 'Invalid header found.'
            mail_res = False
        except AttributeError:
            # Неправильно указана почта
            mail_res = False
        except:
            mail_res = False
    else:
        # In reality we'd use a form class
        # to get proper validation errors.
        # message: Make sure all fields are entered and valid
        mail_res = False

    return mail_res
示例#3
0
def send_html_mail(subject, message, message_html, from_email, recipient_list,
                   priority=None, fail_silently=False, auth_user=None,
                   auth_password=None, connection=None, headers={}):
    """
    Function to queue HTML e-mails
    """
    from django.utils.encoding import force_text
    from django.core.mail import EmailMultiAlternatives
    from mailer.models import make_message

    priority = get_priority(priority)

    # need to do this in case subject used lazy version of ugettext
    subject = force_text(subject)
    message = force_text(message)

    msg = make_message(subject=subject,
                       body=message,
                       from_email=from_email,
                       to=recipient_list,
                       priority=priority,
                       connection=connection)
    email = msg.email
    email = EmailMultiAlternatives(
        email.subject,
        email.body,
        email.from_email,
        email.to,
        connection=email.get_connection(),
        headers=headers
    )
    email.attach_alternative(message_html, "text/html")
    msg.email = email
    msg.save()
    return 1
示例#4
0
def cadastrar_usuario(request):
    formLogin = AuthenticationForm()
    formCadastro = SignUpForm()
    formUserRocklab = RocklabUserForm()
    if request.method == 'POST':
        print '[views] entrou no POST'
        if 'login' in request.POST:
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(request, username=username, password=password)
            if user is not None:
                login(request, user)
                print 'logou'
                return redirect('/password')
            else:
                messages.error(request, 'Usuário e senha inválidos.')

        elif 'cadastro' in request.POST:

            #Formularios de cadastro dos dados do usuario
            formCadastro = SignUpForm(request.POST)
            formUserRocklab = RocklabUserForm(request.POST)

            # Validando os valores dos campos do form
            if formCadastro.is_valid() and formUserRocklab.is_valid():

                #Travando user para futura validacao por email
                user = formCadastro.save(commit=False)
                user.is_active = False
                user.save()

                #Salvando o formulario em um variavel(objeto)
                newRocklabUser = formUserRocklab.save(commit=False)

                for field in list(RocklabUserForm().base_fields):
                    # setando os atributos preenchidos no formulario para o rocklabuser
                    setattr(user.rocklabuser, field,
                            getattr(newRocklabUser, field))
                    user.rocklabuser.save()

                current_site = get_current_site(request)
                mail_subject = 'Ative sua conta.'

                # Obtendo o conteudo do email sob a forma de pagina html
                email_template = get_template('meulogin/acc_active_email.html')

                #Dados do usuario para mensagem a ser enviada
                message = {
                    'user': user,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                    'token': account_activation_token.make_token(user),
                }

                html_content = email_template.render(message)

                to_email = formCadastro.cleaned_data.get('email')

                # Construindo o email a ser enviado e criando uma nova coneccao com o servidor do email
                email = EmailMultiAlternatives(
                    mail_subject,
                    '',
                    from_email=settings.EMAIL_HOST_USER,
                    to=[to_email])

                # Enviando a pagina renderizada para o email
                email.attach_alternative(html_content, "text/html")

                # Obtendo a conexao com o servidor do email
                email_connection = email.get_connection()

                # Enviando email
                email_connection.username = settings.EMAIL_HOST_USER
                email_connection.password = settings.EMAIL_HOST_PASSWORD
                email.send()

                return HttpResponse(
                    'Please confirm your email address to complete the registration'
                )

        else:
            print '[views] request.POST', request.POST
    return render(
        request, "meulogin/index.html", {
            'formLogin': formLogin,
            'formCadastro': formCadastro,
            'formUserRocklab': formUserRocklab
        })