def tutorial_email(request, pk, pks):
presentation = get_object_or_404(Presentation, pk=pk)
if not request.user.is_staff:
if not is_attendee_or_speaker(request.user, presentation):
return HttpResponseForbidden(_(u"Not authorized for this page"))
pks = pks.split(",")
user_model = get_user_model()
recipients = user_model.objects.filter(pk__in=pks)
emails = recipients.values_list('email', flat=True)
from_speaker = False
if hasattr(request.user, 'speaker_profile'):
from_speaker = request.user.speaker_profile in presentation.speakers()
form = BulkEmailForm()
if request.method == 'POST':
form = BulkEmailForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
body = form.cleaned_data['body']
context = email_context(
request,
presentation.proposal,
body,
subject=subject)
try:
# Send Email to each recipient separately,
send_email_message("direct_email",
from_=settings.DEFAULT_FROM_EMAIL,
to=[],
bcc=emails,
context=context,
headers={'Reply-To': request.user.email})
except SMTPException:
log.exception("ERROR sending Tutorial emails")
messages.add_message(request, messages.ERROR,
_(u"There was some error sending emails, "
u"not all of them might have made it"))
else:
messages.add_message(request, messages.INFO,
_(u"Email(s) sent"))
url = reverse(
'schedule_presentation_detail',
args=[presentation.pk]
)
return redirect(url)
ctx = {
'presentation': presentation,
'form': form,
'users': recipients,
'from_speaker': from_speaker
}
return render(request, "tutorials/email.html", ctx)
评论列表
文章目录