def METHOD_NAME(self, form):
    # Check if the current user is allowed to send to the selected org
    organisation = form.cleaned_data["organisation"]
    if not self._check_permission(organisation, self.request.user):
        raise PermissionDenied
    instance = form.save(commit=False)
    instance.creator = self.request.user
    instance.sent = timezone.now()
    instance.save()
    form.save_m2m()
    receivers = int(form.cleaned_data["receivers"])
    if receivers == models.PROJECT:
        participant_ids = Follow.objects.filter(
            project=form.cleaned_data["project"].pk, enabled=True
        ).values_list("creator", flat=True)
    elif receivers == models.ORGANISATION:
        participant_ids = (
            Follow.objects.filter(
                project__organisation=organisation.pk, enabled=True
            )
            .values_list("creator", flat=True)
            .distinct()
        )
    elif receivers == models.INITIATOR:
        participant_ids = (
            Organisation.objects.get(pk=organisation.pk)
            .initiators.all()
            .values_list("pk", flat=True)
        )
    else:
        participant_ids = []
    if receivers == models.PLATFORM:
        emails.NewsletterEmailAll.send(instance, **self.get_email_kwargs())
    else:
        emails.NewsletterEmail.send(
            instance,
            participant_ids=list(participant_ids),
            **self.get_email_kwargs()
        )
    messages.success(
        self.request,
        _("Newsletter has been saved and " "will be sent to the recipients."),
    )
    return HttpResponseRedirect(self.get_success_url())