Example #1
0
def _send_mails(anuncio, alerts, request):
    """Enviá un email a los usuarios.

    Enviá el email a todos los usuarios que tienen un filtro coincidente al
    anuncio recién creado.

    Args:
        alerts (QuerySet): Resultados de la búsqueda.
        request (HttpRequest): Objeto request.

    Returns:
        int: 1 si se manda el email, 0 en caso contrario.
    """
    current_site = get_current_site(request)
    recipients = set([alert.owner.email for alert in alerts])
    anuncio_url = get_full_path(request, 'anuncios:details', pk=anuncio.pk)
    alerts_url = get_full_path(request, 'accounts:profile')
    return send_templated_mail(
        subject='Anuncio que puede interesarte desde {}'.format(
            current_site.name),
        from_email=settings.GROUP_EMAILS['NO-REPLY'],
        recipients=list(recipients),
        context={
            'site_name': current_site.name,
            'anuncio': anuncio,
            'anuncio_url': anuncio_url,
            'alerts_url': alerts_url
        },
        template_text='alerts/emails/alert_anuncio.txt')
Example #2
0
 def _notify(self, resource_id):
     """Notifica al owner del recurso y a los ADMINS que el link
     lo han marcado como roto.
     """
     resource = Resource.objects.get(pk=resource_id)
     resource_url = get_full_path(
         self.request,
         'resources:details',
         slug=resource.slug
     )
     site = Site.objects.get_current()
     context = {
         'resource_title': resource.title,
         'resource_url': resource_url,
         'site_name': site.name
     }
     recipients = settings.GROUP_EMAILS['ADMINS']
     recipients += (resource.owner.username, resource.owner.email)
     send_templated_mail(
         subject='Se ha marcado un enlace como roto',
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=recipients,
         context=context,
         template_text='resources/emails/notify_marked_resource_broken.txt'
     )
Example #3
0
 def form_valid(self, form):
     """Si el form es valido, enviar el email de recomendación."""
     current_site = get_current_site(self.request)
     recipients = [form.cleaned_data.get('email_to')]
     from_email = form.cleaned_data.get('from_email')
     body = form.cleaned_data.get('body')
     link_anuncio = get_full_path(self.request,
                                  'anuncios:details',
                                  pk=self.anuncio.pk)
     context = {
         'from_email': from_email,
         'body': body,
         'link_anuncio': link_anuncio,
         'site_name': current_site.name,
         'site_domain': current_site.domain
     }
     send_templated_mail(subject='Recomendación de un anuncio en {}'.format(
         current_site.name),
                         from_email=from_email,
                         recipients=recipients,
                         context=context,
                         template_text='recommend/emails/recommend.txt',
                         reply_to=[from_email])
     msg_success = 'Se ha enviado con éxito el mensaje'
     messages.success(self.request, msg_success)
     return redirect(
         reverse('anuncios:details', kwargs={'pk': self.anuncio.pk}))
Example #4
0
 def form_valid(self, form):
     """Si el form es valido, mandar el email al recipient."""
     resource = Resource.objects.get(slug=self.kwargs.get('slug'))
     site = Site.objects.get_current()
     from_email = form.cleaned_data.get('from_email')
     recipients = [form.cleaned_data.get('recipient_email')]
     message = form.cleaned_data.get('message')
     subject = 'Recomendación de un recurso en {}'.format(site.name)
     resource_link = get_full_path(
         self.request,
         'resources:details',
         slug=resource.slug
     )
     context = {
         'site_name': site.name,
         'resource_title': resource.title,
         'from_email': from_email,
         'message': message,
         'resource_link': resource_link
     }
     send_templated_mail(
         subject=subject,
         from_email=from_email,
         recipients=recipients,
         context=context,
         template_text='recommend/emails/resource.txt'
     )
     return super().form_valid(form)
Example #5
0
 def _send_confirm_email_for_validate(self, token, new_email):
     """Envía un email para la confirmación del nuevo email con un token."""
     current_site = get_current_site(self.request)
     url_validate_token = get_full_path(
         self.request, 'authentication:email_update_validate', token=token)
     context = {
         'url_validate_token': url_validate_token,
         'site_name': current_site.name
     }
     send_templated_mail(
         subject=_('Confirmación cambio de email'),
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=[new_email],
         context=context,
         template_text='authentication/emails/email_update_confirm.txt')
Example #6
0
def notify_new_pmessage(request, message):
    """Notifica a un recipient de un nuevo mensaje privado."""
    parent = message.parent if message.parent else message
    enlace_message = get_full_path(request, 'pmessages:thread', pk=parent.pk)
    subject = 'Te han enviado un mensaje privado'
    from_email = settings.GROUP_EMAILS['NO-REPLY']
    recipients = [message.recipient.email]
    template_text = 'pmessages/emails/notify_new_pmessage.txt'
    context = {
        'site_name': get_current_site(request).name,
        'enlace_message': enlace_message
    }
    send_templated_mail(subject=subject,
                        from_email=from_email,
                        recipients=recipients,
                        context=context,
                        template_text=template_text)
Example #7
0
def notify_mail_account_premium(request, payment_ipn):
    """Notifica por email que el proceso se ha completado."""
    current_site = get_current_site(request)
    subject = 'Confirmación de premium en {}'.format(current_site.name)
    from_email = settings.GROUP_EMAILS['NO-REPLY']
    recipients = [payment_ipn.user.email]
    template_text = 'payments/mails/notify_premium.txt'
    context = {
        'profile_url': get_full_path(request, 'accounts:profile'),
        'site_name': current_site.name,
        'payment': payment_ipn
    }
    send_templated_mail(subject=subject,
                        from_email=from_email,
                        recipients=recipients,
                        context=context,
                        template_text=template_text)
Example #8
0
 def _send_email_with_token(self):
     """Envía un email con token para terminar proceso de registro."""
     current_site = get_current_site(self.request)
     site_name = current_site.name
     url_validate_token = get_full_path(self.request,
                                        'authentication:validate_token',
                                        token=self.object.token)
     context = {
         'username': self.object.username,
         'email': self.object.email,
         'site_name': site_name,
         'url_validate_token': url_validate_token
     }
     send_templated_mail(
         subject=_(f'Validación de email en {site_name}'),
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=[self.object.email],
         context=context,
         template_text='authentication/emails/register_success.txt')
Example #9
0
 def _send_confirm_email_for_validate(self, token, new_email):
     """Enviá un email para la confirmación del nuevo email con un token."""
     current_site = get_current_site(self.request)
     url_validate_token = get_full_path(
         self.request,
         'authentication:email_update_validate',
         token=token
     )
     context = {
         'url_validate_token': url_validate_token,
         'site_name': current_site.name
     }
     send_templated_mail(
         subject=_('Confirmación cambio de email'),
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=[new_email],
         context=context,
         template_text='authentication/emails/email_update_confirm.txt'
     )
Example #10
0
def notify_new_contact_message(request, contact):
    """Envía una notificación del formulario de contacto."""
    site = get_current_site(request)
    site_name = site.name
    subject = f'Nuevo email de contacto en {site_name}'
    context = {
        'is_register': contact.is_register,
        'subject': contact.subject,
        'email': contact.email,
        'text': contact.text,
        'site_name': site_name,
        'callback_url': get_full_path(request,
                                      'contact:details',
                                      pk=contact.pk)
    }
    send_templated_mail(subject=subject,
                        from_email=settings.DEFAULT_FROM_EMAIL,
                        recipients=settings.GROUP_EMAILS['CONTACTS'],
                        context=context,
                        template_text='contact/emails/contact.txt')
Example #11
0
 def _notify(self, resource_id):
     """Notifica a la administración que un resource puede ser spam."""
     resource = Resource.objects.get(pk=resource_id)
     resource_url = get_full_path(
         self.request,
         'resources:details',
         slug=resource.slug
     )
     site = Site.objects.get_current()
     context = {
         'resource_title': resource.title,
         'resource_url': resource_url,
         'site_name': site.name
     }
     send_templated_mail(
         subject='Se ha marcado un recurso como SPAM',
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=settings.GROUP_EMAILS['ADMINS'],
         context=context,
         template_text='resources/emails/notify_marked_resource_spam.txt'
     )
Example #12
0
 def _send_email_with_token(self):
     """Envía un email con token para terminar proceso de registro."""
     current_site = get_current_site(self.request)
     site_name = current_site.name
     url_validate_token = get_full_path(
         self.request,
         'authentication:validate_token',
         token=self.object.token
     )
     context = {
         'username': self.object.username,
         'email': self.object.email,
         'site_name': site_name,
         'url_validate_token': url_validate_token
     }
     send_templated_mail(
         subject=_('Validación de email en {}').format(site_name),
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=[self.object.email],
         context=context,
         template_text='authentication/emails/register_success.txt'
     )
Example #13
0
 def _send_notify_mail(self):
     code = self.object.code
     user_id = self.request.POST['to_user']
     payment_promo = self.request.POST['payment_promo']
     user = UserModel.objects.get(pk=user_id)
     site = get_current_site(self.request)
     promotion_list = {k: v for k, v in PaymentIpn.PAYMENT_CHOICES}
     context = {
         'code': code,
         'user': user,
         'site_name': site.name,
         'promotion': promotion_list.get(payment_promo),
         'promo_expire_days': self.object.expire_at,
         'link_profile': get_full_path(self.request, 'accounts:profile')
     }
     send_templated_mail(
         subject='Código de promoción en {}'.format(site.name),
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=[user.email],
         context=context,
         template_text='promos/emails/send_code.txt'
     )
Example #14
0
 def _send_email_notification(self, form):
     """Envia un email de notificación."""
     subject = form.cleaned_data['subject']
     message = form.cleaned_data['message']
     user_email = form.cleaned_data['email']
     username = form.cleaned_data['username']
     is_register = form.cleaned_data['is_register']
     link_message = get_full_path(self.request, 'contact:list')
     context = {
         'register_text': 'registrado' if is_register else 'no registrado',
         'username': username,
         'user_email': user_email,
         'subject': subject,
         'message': message,
         'link_message': link_message
     }
     send_templated_mail(subject=subject,
                         from_email=user_email,
                         recipients=settings.GROUP_EMAILS['CONTACTS'],
                         context=context,
                         template_text='contact/emails/contact.txt',
                         reply_to=[user_email])
Example #15
0
 def _notify_admins(self):
     """Notifica a los administradores del nuevo recurso."""
     resource = self.object
     site = get_current_site(self.request)
     context = {
         'site_name':
         site.name,
         'title':
         resource.title,
         'resource_link':
         get_full_path(self.request,
                       'resources:details',
                       slug=resource.slug),
         'link_resource_admin':
         '{}/admin/resources/resource/{}/change/'.format(
             get_http_host(self.request), resource.pk)
     }
     send_templated_mail(
         subject='Se ha creado un nuevo recurso en {}'.format(site.name),
         from_email=settings.DEFAULT_FROM_EMAIL,
         recipients=settings.GROUP_EMAILS['ADMINS'],
         context=context,
         template_text='resources/emails/notify_admins_new_resource.txt')
Example #16
0
 def _notify(self):
     """Notifica al owner que se ha aprobado el recurso."""
     resource = self.object
     site = get_current_site(self.request)
     context = {
         'site_name':
         site.name,
         'user_name':
         resource.owner.username,
         'resource_title':
         resource.title,
         'resource_link':
         get_full_path(self.request,
                       'resources:details',
                       slug=resource.slug)
     }
     subject = 'Se ha publicado el recurso {resource}'.format(
         resource=resource.title)
     send_templated_mail(
         subject=subject,
         from_email=settings.GROUP_EMAILS['NO-REPLY'],
         recipients=[resource.owner.email],
         context=context,
         template_text='resources/emails/notify_quick_resource_approve.txt')