def message(request, group_slug, template_name="user_groups/message.html"): """ Send a message to the group """ from tendenci.apps.emails.models import Email group = get_object_or_404(Group, slug=group_slug) EventLog.objects.log(instance=group) members = GroupMembership.objects.filter(group=group, status=True, status_detail="active") num_members = members.count() form = MessageForm(request.POST or None, request=request, num_members=num_members) if request.method == "POST" and form.is_valid(): email = Email() email.sender_display = request.user.get_full_name() email.sender = get_setting("site", "global", "siteemailnoreplyaddress") email.reply_to = email.sender email.content_type = email.CONTENT_TYPE_HTML email.subject = form.cleaned_data["subject"] email.body = form.cleaned_data["body"] email.save(request.user) # send email to myself (testing email) if form.cleaned_data["is_test"]: email.recipient = request.user.email email.send() messages.add_message(request, messages.SUCCESS, _("Successfully sent test email to yourself")) EventLog.objects.log(instance=email) else: # send email to members for member in members: email.recipient = member.member.email email.send() messages.add_message( request, messages.SUCCESS, _("Successfully sent email to all %(num)s members in this group" % {"num": num_members}), ) EventLog.objects.log(instance=email) return redirect("group.detail", group_slug=group_slug) else: print "form errors", form.errors.items() return render(request, template_name, {"group": group, "num_members": num_members, "form": form})
def save(self, *args, **kwargs): data = self.cleaned_data subject = '' subj = data.get('subject', '') inc_last_name = data.get('personalize_subject_last_name') inc_first_name = data.get('personalize_subject_first_name') if inc_first_name and not inc_last_name: subject = '[firstname] ' + subj elif inc_last_name and not inc_first_name: subject = '[lastname] ' + subj elif inc_first_name and inc_last_name: subject = '[firstname] [lastname] ' + subj else: subject = subj nl = super(OldGenerateForm, self).save(*args, **kwargs) nl.subject = subject nl.actionname = subject nl.date_created = datetime.datetime.now() nl.send_status = 'draft' if nl.default_template: template = render_to_string(template_name=nl.default_template, request=self.request) email_content = nl.generate_newsletter(self.request, template) email = Email() email.subject = subject email.body = email_content email.sender = get_setting('site', 'global', 'siteemailnoreplyaddress') email.sender_display = self.request.user.profile.get_name() email.reply_to = self.request.user.email email.creator = self.request.user email.creator_username = self.request.user.username email.owner = self.request.user email.owner_username = self.request.user.username email.save() nl.email = email nl.save() return nl
def save(self, *args, **kwargs): data = self.cleaned_data subject = '' subj = data.get('subject', '') inc_last_name = data.get('personalize_subject_last_name') inc_first_name = data.get('personalize_subject_first_name') if inc_first_name and not inc_last_name: subject = '[firstname] ' + subj elif inc_last_name and not inc_first_name: subject = '[lastname] ' + subj elif inc_first_name and inc_last_name: subject = '[firstname] [lastname] ' + subj else: subject = subj nl = super(OldGenerateForm, self).save(*args, **kwargs) nl.subject = subject nl.actionname = subject nl.date_created = datetime.datetime.now() nl.send_status = 'draft' if nl.default_template: template = render_to_string(nl.default_template, context_instance=RequestContext(self.request)) email_content = nl.generate_newsletter(self.request, template) email = Email() email.subject = subject email.body = email_content email.sender = self.request.user.email email.sender_display = self.request.user.profile.get_name() email.reply_to = self.request.user.email email.creator = self.request.user email.creator_username = self.request.user.username email.owner = self.request.user email.owner_username = self.request.user.username email.save() nl.email = email nl.save() return nl
def message(request, group_slug, template_name='user_groups/message.html'): """ Send a message to the group """ from tendenci.apps.emails.models import Email group = get_object_or_404(Group, slug=group_slug) EventLog.objects.log(instance=group) members = GroupMembership.objects.filter( group=group, status=True, status_detail='active') num_members = members.count() form = MessageForm(request.POST or None, request=request, num_members=num_members) if request.method == 'POST' and form.is_valid(): email = Email() email.sender_display = request.user.get_full_name() email.sender = get_setting('site', 'global', 'siteemailnoreplyaddress') email.reply_to = email.sender email.content_type = 'text/html' email.subject = form.cleaned_data['subject'] email.body = form.cleaned_data['body'] email.save(request.user) # send email to myself (testing email) if form.cleaned_data['is_test']: email.recipient = request.user.email email.send() messages.add_message( request, messages.SUCCESS, _('Successfully sent test email to yourself')) EventLog.objects.log(instance=email) else: # send email to members for member in members: email.recipient = member.member.email email.send() messages.add_message( request, messages.SUCCESS, _('Successfully sent email to all %(num)s members in this group' % {'num': num_members})) EventLog.objects.log(instance=email) return redirect('group.detail', group_slug=group_slug) else: print 'form errors', form.errors.items() return render(request, template_name, { 'group': group, 'num_members': num_members, 'form': form})
def message(request, group_slug, template_name='user_groups/message.html'): """ Send a message to the group """ from tendenci.apps.emails.models import Email group = get_object_or_404(Group, slug=group_slug) EventLog.objects.log(instance=group) members = GroupMembership.objects.filter(group=group, status=True, status_detail='active') num_members = members.count() form = MessageForm(request.POST or None, request=request, num_members=num_members) if request.method == 'POST' and form.is_valid(): email = Email() email.sender_display = request.user.get_full_name() email.sender = get_setting('site', 'global', 'siteemailnoreplyaddress') email.reply_to = email.sender email.content_type = email.CONTENT_TYPE_HTML email.subject = form.cleaned_data['subject'] email.body = form.cleaned_data['body'] email.save(request.user) # send email to myself (testing email) if form.cleaned_data['is_test']: email.recipient = request.user.email email.send() messages.add_message(request, messages.SUCCESS, _('Successfully sent test email to yourself')) EventLog.objects.log(instance=email) else: # send email to members for member in members: email.recipient = member.member.email email.send() messages.add_message( request, messages.SUCCESS, _('Successfully sent email to all %(num)s members in this group' % {'num': num_members})) EventLog.objects.log(instance=email) return redirect('group.detail', group_slug=group_slug) else: print('form errors', list(form.errors.items())) return render_to_resp(request=request, template_name=template_name, context={ 'group': group, 'num_members': num_members, 'form': form })
def message(request, group_slug, template_name='user_groups/message.html'): """ Send a message to the group """ from tendenci.apps.emails.models import Email group = get_object_or_404(Group, slug=group_slug) if group.membership_types.all().exists(): membership_type = group.membership_types.all()[0] else: membership_type = None EventLog.objects.log(instance=group) members = GroupMembership.objects.filter(group=group, status=True, status_detail='active') num_members = members.count() form = MessageForm(request.POST or None, request=request, num_members=num_members) if request.method == 'POST' and form.is_valid(): email = Email() email.sender_display = request.user.get_full_name() email.sender = get_setting('site', 'global', 'siteemailnoreplyaddress') email.reply_to = email.sender email.content_type = email.CONTENT_TYPE_HTML email.subject = form.cleaned_data['subject'] email.body = form.cleaned_data['body'] email.save(request.user) # send email to myself (testing email) if form.cleaned_data['is_test']: email.recipient = request.user.email email.send() messages.add_message(request, messages.SUCCESS, _('Successfully sent test email to yourself')) EventLog.objects.log(instance=email) else: # send email to members for member in members: original_body = email.body email.recipient = member.member.email if membership_type: [membership] = member.member.membershipdefault_set.exclude( status_detail='archive').order_by( '-create_dt')[:1] or [None] if membership: # do find and replace urls_dict = membership.get_common_urls() for key in urls_dict.keys(): email.body = email.body.replace( '[%s]' % key, urls_dict[key]) email.send() # restore back to the original email.body = original_body messages.add_message( request, messages.SUCCESS, _('Successfully sent email to all %(num)s members in this group' % {'num': num_members})) EventLog.objects.log(instance=email) return redirect('group.detail', group_slug=group_slug) else: print('form errors', list(form.errors.items())) if membership_type: available_tokens = '[membership_link], [membership_type], [directory_url], [directory_edit_url], [invoice_link]' else: available_tokens = '' return render_to_resp(request=request, template_name=template_name, context={ 'group': group, 'num_members': num_members, 'membership_type': membership_type, 'available_tokens': available_tokens, 'form': form })
def message(request, group_slug, template_name='user_groups/message.html'): """ Send a message to the group """ from tendenci.apps.emails.models import Email from django.core.mail import send_mail from django.core.mail import EmailMessage group = get_object_or_404(Group, slug=group_slug) EventLog.objects.log(instance=group) members = GroupMembership.objects.filter(group=group, status=True, status_detail='active') num_members = members.count() form = MessageForm(request.POST or None, request=request, num_members=num_members) if request.method == 'POST' and form.is_valid(): email = Email() email.sender_display = request.user.get_full_name() email.sender = get_setting('site', 'global', 'siteemailnoreplyaddress') email.reply_to = email.sender email.content_type = email.CONTENT_TYPE_HTML email.subject = form.cleaned_data['subject'] email.body = form.cleaned_data['body'] email.save(request.user) # send email to myself (testing email) if form.cleaned_data['is_test']: email.recipient = request.user.email print(email.recipient) email.send() messages.add_message(request, messages.SUCCESS, _('Successfully sent test email to yourself')) EventLog.objects.log(instance=email) else: #api_url = settings.MAILCHIMP_API_URL + '/campaigns/' #api_key = settings.MAILCHIMP_API_KEY #headers = {'Content-Type': 'application/json', 'Authorization': api_key} #response = requests.get(api_url, headers=headers); #jsonInput = json.loads(response.text); #list_results = [[x['id'], x['name']] for x in jsonInput['lists']] # print(list_results) #body_content = {"plain_text": "Hi There,\r\nThis is a test again.\r\n-Blake B\n==============================================\n\n"} msg = EmailMessage('Request Callback', 'Here is the message.', to=['*****@*****.**']) msg.send() #send email to members for member in members: email.recipient = member.member.email print(email.recipient) #try: #test = send_mail( # 'Subject here', # 'Here is the message.', # ['*****@*****.**'], # fail_silently=False, #) #print(test) #except SMTPException as e: #print('%s (%s)' % (e.message, type(e))) #email.send() messages.add_message( request, messages.SUCCESS, _('Successfully sent email to all %(num)s members in this group' % {'num': num_members})) EventLog.objects.log(instance=email) return redirect('group.detail', group_slug=group_slug) else: print('form errors', form.errors.items()) return render(request, template_name, { 'group': group, 'num_members': num_members, 'form': form })