def osdc_apply(request): if request.method == 'POST': # If the form has been submitted... form = OSDCForm(request.POST, request.FILES) # A form bound to the POST data if form.is_valid(): # All validation rules pass subject = 'OSDC Account Request' message = build_message(form) sender = form.cleaned_data['email'] recipients = [settings.APPLICATION_EMAIL] pubkey = request.FILES['pubkey'] from django.core.mail import EmailMessage # send_mail(subject, message, sender, recipients) email = EmailMessage(subject, message, sender, recipients) email.attach(pubkey.name, pubkey.read(), pubkey.content_type) email.send() return HttpResponseRedirect('thanks/') # Redirect after POST else: form = OSDCForm() # An unbound form return render(request, 'webforms/osdc_apply.html', { 'form': form, })
def osdc_apply(request, user=None): if user is None: user = request.user if request.method == 'POST': # If the form has been submitted... form = OSDCForm(request.POST, request.FILES) # A form bound to the POST data if form.is_valid(): # All validation rules pass subject = '%s %s OSDC Account Request' % (form.cleaned_data['first_name'], form.cleaned_data['last_name']) message_admin = build_message(form) sender_admin = form.cleaned_data['email'] recipients_admin = [settings.APPLICATION_EMAIL] # Values for confirmation email to user ('Subject' remains same) message_user = ( "Thank you for your application to the OSDC. " "Someone from our team will contact you within " "one business day.\n\n%s" % message_admin) sender_user = '******' recipients_user = [sender_admin] email_admin = EmailMessage(subject, message_admin, sender_admin, recipients_admin) email_user = EmailMessage(subject, message_user, sender_user, recipients_user) if "pubkey" in request.FILES: pubkey = request.FILES["pubkey"] email_admin.attach(pubkey.name, pubkey.read(), pubkey.content_type) email_user.attach(pubkey.name, pubkey.read(), pubkey.content_type) try: email_admin.send() email_user.send() if not request.user.is_authenticated(): logout(request) # Redirect after POST return HttpResponseRedirect('thanks/') except smtplib.SMTPRecipientsRefused as e: form._errors["email"] = ErrorList( # Changed 'sender' to 'sender_admin' after code split into two emails. [u"Domain of address %s does not exist" % sender_admin]) else: if request.user.is_authenticated(): form = OSDCForm(initial={"eppn": user.username, "method": "re-apply"}) elif hasattr(user, 'identifier'): try: email_value = user.identifier validate_email(email_value) except ValidationError: email_value = "" form = OSDCForm(initial={"eppn": user.identifier, "email": email_value, "method": user.method}) else: return HttpResponseRedirect('/pre_apply/?next=/apply/') return render(request, 'webforms/osdc_apply.html', { 'form': form, })