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"
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
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
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 })