def send_contact_message(request): if not request.is_ajax(): return JsonResponse({ 'status': 'not_ajax', }) d = JSON_parse(request.POST.get('data')) if not d: return JsonResponse({'status': 'error', 'message': _("No data in request")}) if "email" not in d: return JsonResponse({ 'status': 'no_email', }) if "first_last_name" not in d: return JsonResponse({ 'status': 'no_first_name', }) if "message" not in d: return JsonResponse({ 'status': 'no_message', }) try: validate_email(d.get('email')) except ValidationError: return JsonResponse({ 'status': 'not_valid_email', }) subject = _('Message from') + " " + settings.SITE_URL message = d.get('message') message_html = message.replace("\r\n", "<br />") message_html = message_html.replace("\n", "<br />") message_html = message_html + "<br /><br />" message_html = message_html + _("Message was sent by:") + " " + d.get('first_last_name') if settings.DEBUG: print "We are sending email with subject:" print subject print "and message:" print "--- text ---" print message print "--- text ---" print "--- html ---" print message_html print "--- html ---" else: send_email(d.get('email'), [settings.CONTACT_EMAIL], None, subject, message, message_html) return JsonResponse({ 'status': 'ok' })
def send_reactivation_key(request, bluser): """ This is not a view, just normal function used in lost_password view. First we get unique key for user profile, then send mail with unique reactivation key. """ # we need unique key def create_key(): # 15: defined in BlocklogicUser model (password_reset_key) return get_random_string(15, string.lowercase + string.digits) key = create_key() while BlocklogicUser.objects.filter(password_reset_key=key).count() > 0: key = create_key() bluser.password_reset_key = key bluser.save() # render a message from template and send it to email reactivation_url = reverse('web:recover_password', args={key}) # put the stuff in template, then render it to string and send it via email mail_context = { 'url': settings.SITE_URL + reactivation_url, 'site_url': settings.SITE_URL, } subject = settings.EMAIL_SUBJECT_PREFIX + " " + _("Recover lost password") message_html = render_to_string('email/lost_password.html', mail_context) message_text = render_to_string('email/lost_password.txt', mail_context) if settings.DEBUG: print "sending register email" print message_text print message_html else: send_email(settings.EMAIL_FROM, [bluser.email], None, subject, message_text, message_html)
def try_register(user_form): new_user = user_form.save() new_user.set_password(user_form.cleaned_data['password1']) key = "" while key == "": key = get_random_string(15, string.lowercase + string.digits) user = BlocklogicUser.objects.filter(password_reset_key=key) if user: key = "" new_user.password_reset_key = key new_user.type = 'normal' new_user.is_active = False new_user.save() new_user.update_user_profile() # TODO: add the free subscription on register # add_free_subscription(new_user) activation_url = reverse('web:activate_account', args={key}) # put the stuff in template, then render it to string and send it via email mail_context = { 'url': settings.SITE_URL + activation_url, 'site_url': settings.SITE_URL, } subject = settings.EMAIL_SUBJECT_PREFIX + " " + _("Registration successful") message_html = render_to_string('email/email_verification.html', mail_context) message_text = render_to_string('email/email_verification.txt', mail_context) if settings.DEBUG: print message_text print message_html else: send_email(settings.EMAIL_FROM, [new_user.email], None, subject, message_text, message_html)
if datetime_created_with_offset < datetime.datetime.now(): if payment.amount_paid > 0: payment.status = NOT_ENOUGH_MONEY_ARRIVED else: payment.status = NO_MONEY_ARRIVED payment.save() except Payment.DoesNotExist: pass # POS Bills, POS Bills, POS Bills # POS Bills, POS Bills, POS Bills # POS Bills, POS Bills, POS Bills if transactions and last_checked_block != transactions['lastblock']: update_last_checked_block(transactions['lastblock']) except Exception, error: subject = "ERROR when getting transactions from bitcoin client or something..." message = "see subject" if (settings.DEBUG): print subject print message else: send_email(settings.EMAIL_FROM, [settings.EMAIL_FROM], None, "ERROR when getting total received by addresss", message, message) continue print "Sleeping %s seconds..." % (settings.PAYMENT_OFFICER["bitcoin_check_interval"]) time.sleep(settings.PAYMENT_OFFICER["bitcoin_check_interval"])
# -*- coding:utf-8 -*- import os import django django.setup() from common.functions import send_email os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sellout_biz.settings") import settings send_email(settings.EMAIL_FROM, [settings.ADMINS[0][1]], None, "Test message sellout.biz", "message", "message") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "sellout_biz.spletna_blagajna_settings") import spletna_blagajna_settings as settings send_email( settings.EMAIL_FROM, [settings.ADMINS[0][1]], None, "Test message from spletna-blagajna.si", "message", "message" )
def invite_users(request, company): """ create a new Action entry """ try: c = Company.objects.get(url_name=company) except Company.DoesNotExist: return JsonError(_("Company not found")) # permissions if not has_permission(request.user, c, 'user', 'edit'): return JsonError(_("You have no permissions to invite users")) # POST data: # emails is a list of dictionaries: # {'email': '*****@*****.**', 'permission': 'cashier'} try: data = JsonParse(request.POST.get('data')) if not data: raise KeyError except (ValueError, AttributeError, TypeError, KeyError): return JsonError(_("No data in request")) # check POSTed emails and permissions: errors = [] valid_data = [] for d in data: email = str(d.get('email')) if not email: continue # validate permission permission = str(d.get('permission')) if permission not in g.PERMISSION_TYPES: # this shouldn't happen, don't even translate errors.append("This permission type is not valid: " + email + ": " + permission) # validate this email try: validate_email(email) valid_data.append(d) except ValidationError: errors.append(email) # check if this user is already a member of this company if Permission.objects.filter(company=c, user__email=email).exists(): errors.append(_("User with this email is already member of the group: ") + email) # do nothing if there are errors if len(errors) > 0: return JsonError(errors) # insert all emails as Actions for d in valid_data: email = d.get('email') permission = d.get('permission') # delete any waiting actions from the same company and for the same user; Action.objects.filter(company=c, receiver=email, type=g.ACTION_INVITATION, status=g.ACTION_WAITING).delete() # create new Action entries action_data = {"user_email": request.user.email, "user_first_last_name": str(request.user), "permission": permission} action = Action( created_by=request.user, company=c, sender=request.user.email, receiver=email, type=g.ACTION_INVITATION, status=g.ACTION_WAITING, data=json.dumps(action_data) ) action.save() # send a different invite to non-registered users and registered users if BlocklogicUser.objects.filter(email=email).exists(): template_html = 'email/invitation_for_registered_users.html' template_text = 'email/invitation_for_registered_users.txt' else: template_html = 'email/invitation_for_non_registered_users.html' template_text = 'email/invitation_for_non_registered_users.txt' # send email mail_context = { 'company_name': c.name, 'register_url': settings.SITE_URL + reverse('web:sign_up'), 'login_url': settings.SITE_URL + reverse('web:select_company'), } message_html = render_to_string(template_html, mail_context) message_text = render_to_string(template_text, mail_context) if settings.DEBUG: print "=============" print message_text print "=============" print message_html print "=============" else: send_email(settings.EMAIL_FROM, [email], None, settings.EMAIL_SUBJECT_PREFIX + " " + _("Invitation to join company on") + " " + settings.SITE_URL, message_text, message_html) return JsonOk()