def account_check_nieuwe_email(request, from_ip, account): """ detecteer wissel van email in CRM; stuur bevestig verzoek mail """ # kijk of een nieuw e-mailadres bevestigd moet worden ack_url, mailadres = account_check_gewijzigde_email(account) if ack_url: # schrijf in het logboek schrijf_in_logboek( account=None, gebruikte_functie="Inloggen", activiteit="Bevestiging van nieuwe email gevraagd voor account %s" % repr(account.username)) text_body = ( "Hallo!\n\n" + "Dit is een verzoek vanuit " + settings.NAAM_SITE + " om toegang tot je email te bevestigen.\n" + "Klik op onderstaande link om dit te bevestigen.\n\n" + ack_url + "\n\n" + "Als je dit verzoek onverwacht ontvangen hebt, neem dan contact met ons op via " + settings.EMAIL_BONDSBUREAU + "\n\n" + "Veel plezier met de site!\n" + "Het bondsbureau\n") mailer_queue_email(mailadres, 'Email adres bevestigen', text_body, enforce_whitelist=False) context = {'partial_email': mailer_obfuscate_email(mailadres)} menu_dynamics(request, context) return render(request, TEMPLATE_NIEUWEEMAIL, context) # geen wijziging van e-mailadres - gewoon doorgaan return None
def post(request, *args, **kwargs): eigenaar = request.user try: opdracht_pk = int( kwargs['opdracht_pk'][:6]) # afkappen voor veiligheid opdracht = (Opdracht.objects.select_related('bron').get( pk=opdracht_pk, eigenaar=eigenaar)) # alleen eigen producten except (ValueError, Opdracht.DoesNotExist): raise Resolver404() if opdracht.is_afgehandeld or opdracht.is_vrijgegeven_voor_levering: raise Resolver404() opdracht.is_vrijgegeven_voor_levering = True opdracht.save() mailer_queue_email(opdracht.to_email, opdracht.subject, opdracht.mail_body) opdracht.is_afgehandeld = True opdracht.save() url = reverse('Producten:bekijk-opdracht', kwargs={'opdracht_pk': opdracht.pk}) return HttpResponseRedirect(url)
def account_vraag_email_bevestiging(accountmail, **kwargs): """ Stuur een mail naar het adres om te vragen om een bevestiging. Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt. """ # maak de url aan om het e-mailadres te bevestigen url = maak_tijdelijke_url_account_email(accountmail, **kwargs) text_body = ( "Hallo!\n\n" + "Je hebt een account aangemaakt op de DOF website.\n" + "Klik op onderstaande link om dit te bevestigen.\n\n" + url + "\n\n" + "Als jij dit niet was, neem dan contact met ons op het support e-mail adres\n\n" + "Veel plezier met de site!\n" + "Het website team\n") mailer_queue_email(accountmail.nieuwe_email, 'Aanmaken account voltooien', text_body)
def stuur_nieuwe_taak_email(email, aantal_open): """ Stuur een e-mail dat er een nieuwe taak te wachten staat. """ if aantal_open == 1: aantal_str = "stond er 1 taak open" else: aantal_str = "stonden er %s taken open" % aantal_open text_body = ("Hallo %s!\n\n" % email.account.get_first_name() + "Er is zojuist een nieuwe taak voor jou aangemaakt op %s\n" % settings.SITE_URL + "Op het moment van sturen %s.\n\n" % aantal_str + "Bedankt voor je aandacht!\n" + "Het bondsbureau\n") mailer_queue_email(email.bevestigde_email, 'Er is een nieuwe taak voor jou', text_body)
def stuur_taak_email_herinnering(email, aantal_open): """ Stuur een e-mail ter herinnering dat er een taak te wachten staat. """ if aantal_open == 1: aantal_str = "stond er 1 taak open" taken_str = "is een taak die jouw aandacht nodig heeft" else: aantal_str = "stonden er %s taken open" % aantal_open taken_str = "zijn taken die jouw aandacht nodig hebben" text_body = ("Hallo %s!\n\n" % email.account.get_first_name() + "Er %s op %s\n" % (taken_str, settings.SITE_URL) + "Op het moment van sturen %s.\n\n" % aantal_str + "Bedankt voor je aandacht!\n" + "Het bondsbureau\n") mailer_queue_email(email.bevestigde_email, 'Er zijn taken voor jou', text_body)
def account_stuur_email_wachtwoord_vergeten(accountemail, **kwargs): """ Stuur een mail naar het adres om te vragen om een bevestiging. Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt. """ # maak de url aan om het e-mailadres te bevestigen url = maak_tijdelijke_url_wachtwoord_vergeten(accountemail, **kwargs) text_body = ( "Hallo!\n\n" + "Je hebt aangegeven je wachtwoord vergeten te zijn voor de DOF website.\n" + "Klik op onderstaande link om een nieuw wachtwoord in te stellen.\n\n" + url + "\n\n" + "Als jij dit niet was, neem dan contact met ons op het gebruikelijke e-mailadres.\n\n" + "Veel plezier met de site!\n" + "Het webshop team\n") mailer_queue_email(accountemail.bevestigde_email, 'Wachtwoord vergeten', text_body)
def setUp(self): """ initialisatie van de test case """ # maak een onvoltooid account aan account, _ = account_create( 'test', 'Voornaam', 'Achternaam', 'fdsli131982c$114', # password '*****@*****.**', email_is_bevestigd=False) account.date_joined -= datetime.timedelta(days=4) account.save() # maak een oude logboek regel aan schrijf_in_logboek(None, 'Test', 'Just testing') regel = LogboekRegel.objects.get(gebruikte_functie='Test') regel.toegevoegd_op -= datetime.timedelta(days=549) regel.save() # maak een mail aan die lang geleden verstuurd is mailer_queue_email('*****@*****.**', 'Test', 'Test', enforce_whitelist=False) mail = MailQueue.objects.all()[0] mail.toegevoegd_op -= datetime.timedelta(days=92) mail.save() # maak een tijdelijke url aan save_tijdelijke_url('code', 'test', geldig_dagen=-8) # maak een oude, afgehandelde site feedback aan store_feedback('mij', 'pagina', SiteFeedback.url2bev['plus'], 'feedback') feedback = SiteFeedback.objects.all()[0] feedback.toegevoegd_op -= datetime.timedelta(days=92) feedback.is_afgehandeld = True feedback.save() # maak een afgehandelde taak aan Taak(is_afgerond=True, deadline='2020-01-01', beschrijving='test').save()
def functie_vraag_email_bevestiging(functie): """ Stuur een mail naar het adres om te vragen om een bevestiging. Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt. """ # maak de url aan om het e-mailadres te bevestigen url = maak_tijdelijke_url_functie_email(functie) text_body = ("Hallo!\n\n" + "Een beheerder heeft dit e-mailadres gekoppeld op " + settings.NAAM_SITE + ".\n" + "Klik op onderstaande link om dit te bevestigen.\n\n" + url + "\n\n" + "Als je dit niet herkent, neem dan contact met ons op via " + settings.EMAIL_BONDSBUREAU + "\n\n" + "Het bondsbureau\n") mailer_queue_email(functie.nieuwe_email, 'Bevestig gebruik e-mail voor rol', text_body, enforce_whitelist=False)
def account_vraag_email_bevestiging(accountmail, **kwargs): """ Stuur een mail naar het adres om te vragen om een bevestiging. Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt. """ # maak de url aan om het e-mailadres te bevestigen url = maak_tijdelijke_url_account_email(accountmail, **kwargs) text_body = ("Hallo!\n\n" + "Je hebt een account aangemaakt op " + settings.NAAM_SITE + ".\n" + "Klik op onderstaande link om dit te bevestigen.\n\n" + url + "\n\n" + "Als jij dit niet was, neem dan contact met ons op via " + settings.EMAIL_BONDSBUREAU + "\n\n" + "Veel plezier met de site!\n" + "Het bondsbureau\n") mailer_queue_email(accountmail.nieuwe_email, 'Aanmaken account voltooien', text_body, enforce_whitelist=False) # deze mails altijd doorlaten
def account_stuur_email_wachtwoord_vergeten(accountemail, **kwargs): """ Stuur een mail naar het adres om te vragen om een bevestiging. Gebruik een tijdelijke URL die, na het volgen, weer in deze module uit komt. """ # maak de url aan om het e-mailadres te bevestigen url = maak_tijdelijke_url_wachtwoord_vergeten(accountemail, **kwargs) text_body = ( "Hallo!\n\n" + "Je hebt aangegeven je wachtwoord vergeten te zijn voor " + settings.NAAM_SITE + ".\n" + "Klik op onderstaande link om een nieuw wachtwoord in te stellen.\n\n" + url + "\n\n" + "Als jij dit niet was, neem dan contact met ons op via " + settings.EMAIL_BONDSBUREAU + "\n\n" + "Veel plezier met de site!\n" + "Het bondsbureau\n") mailer_queue_email(accountemail.bevestigde_email, 'Wachtwoord vergeten', text_body, enforce_whitelist=False)
def _stuur_notificatie_email(account, door_naam, functie_beschrijving, add=False, remove=False): functie_beschrijving = '"' + functie_beschrijving + '"' if add: actie = "Toegevoegde" else: actie = 'Verwijderde' text_body = ( "Hallo!\n\n" + "Je rollen zijn aangepast op " + settings.NAAM_SITE + ".\n\n" + actie + " rol: " + functie_beschrijving + ".\n\n" + "Als je dit niet herkent, neem dan contact met ons op via " + settings.EMAIL_BONDSBUREAU + "\n\n" + "Het bondsbureau\n") email = account.accountemail_set.all()[0] mailer_queue_email(email.bevestigde_email, 'Wijziging rollen op ' + settings.NAAM_SITE, text_body)
def _maak_opdracht(self, inbox, items, order, template_taal): try: email = items['E-mail'] naam = items['Naam'] except KeyError: if self._verbose: self.stderr.write('[ERROR] Inbox pk=%s heeft niet alle benodigde items' % inbox.pk) self.stderr.write('Dit zijn de items:') for key, value in items.items(): self.stderr.write(' %s / %s' % (key, value)) my_logger.error('Inbox pk=%s heeft niet alle benodigde items' % inbox.pk) return False # faal email = email.strip() if not mailer_email_is_valide(email): self.stderr.write('[ERROR] Inbox pk=%s heeft geen valide e-mail: %s' % (inbox.pk, repr(email))) my_logger.error('Inbox pk=%s heeft geen valide e-mail: %s' % (inbox.pk, repr(email))) return False # faal try: opdracht = Opdracht.objects.get(bron=inbox) except Opdracht.DoesNotExist: # maak een nieuwe opdracht aan opdracht = Opdracht() opdracht.bron = inbox else: # hergebruik de opdracht (voorkom duplicates) opdracht.producten.clear() opdracht.eigenaar = Account.objects.get(username=settings.DEFAULT_EIGENAAR) opdracht.to_email = email opdracht.to_naam = naam opdracht.regels = "\n".join([regel for _, regel in order]) opdracht.regels += '\n\nGekozen taal voor de levering: %s' % template_taal opdracht.save() opdracht.is_vrijgegeven_voor_levering = True # zoek matchende producten prod_links = list() for taal, regel in order: # print('taal: %s, regel: %s' % (taal, repr(regel))) for prod in (Product .objects .filter(eigenaar=opdracht.eigenaar, taal=taal)): if prod.is_match(regel): # controleer dat het bestand bestaat, anders niet leveren fpath, _ = get_path_to_product_bestand(prod) if os.path.exists(fpath): opdracht.producten.add(prod) # levering aanmaken (of hergebruiken) try: levering = Levering.objects.get(opdracht=opdracht, product=prod) except Levering.DoesNotExist: levering = Levering(opdracht=opdracht, product=prod, eigenaar=opdracht.eigenaar, to_email=email) levering.maak_url_code() levering.download_count = settings.DOWNLOAD_CREDITS levering.save() url = settings.SITE_URL + '/code/%s/' % levering.url_code link = '%s: %s' % (prod.korte_beschrijving, url) if link not in prod_links: prod_links.append(link) else: self.stderr.write('[ERROR] Kan bestand %s niet vinden' % repr(fpath)) if prod.handmatig_vrijgeven: opdracht.is_vrijgegeven_voor_levering = False # for # for if len(prod_links) == 0: # geen producten kunnen matchen opdracht.is_vrijgegeven_voor_levering = False my_logger.warning('Opdracht pk=%s niet kunnen koppelen aan een product' % opdracht.pk) opdracht.save() return False # faal try: template = (BerichtTemplate .objects .get(eigenaar=opdracht.eigenaar, taal=template_taal)) except BerichtTemplate.DoesNotExist: # geen template kunnen maken opdracht.is_vrijgegeven_voor_levering = False my_logger.error('Geen template voor taal %s en eigenaar %s' % ( repr(template_taal), opdracht.eigenaar.get_first_name())) opdracht.save() return False if len(prod_links) > 1: msg = template.plural else: msg = template.singular msg = msg.replace('%NAME%', opdracht.to_naam) msg = msg.replace('%LINKS%', "\n".join(prod_links)) opdracht.mail_body = msg opdracht.subject = template.subject opdracht.save() # indien automatisch vrijgegeven, verstuur meteen de e-mail if opdracht.is_vrijgegeven_voor_levering: mailer_queue_email(opdracht.to_email, opdracht.subject, opdracht.mail_body) # success return True