improve mail sending error management

mailing
Laurent 2 months ago
parent 409777f6b6
commit 03f860cf48
  1. 13
      biz/admin.py

@ -361,9 +361,12 @@ class ProspectAdmin(SyncedObjectAdmin):
if form.is_valid(): if form.is_valid():
email_template = form.cleaned_data['email_template'] email_template = form.cleaned_data['email_template']
self.process_selected_items_with_template(request, queryset, email_template) sent_count, failed_count = self.process_selected_items_with_template(request, queryset, email_template)
self.message_user(request, f"Email sent to {queryset.count()} prospects using the '{email_template.name}' template.", messages.SUCCESS) if failed_count > 0:
self.message_user(request, f"Email sent to {sent_count} prospects, {failed_count} failed using the '{email_template.name}' template.", messages.WARNING)
else:
self.message_user(request, f"Email sent to {sent_count} prospects using the '{email_template.name}' template.", messages.SUCCESS)
return HttpResponseRedirect(request.get_full_path()) return HttpResponseRedirect(request.get_full_path())
else: else:
form = EmailTemplateSelectionForm() form = EmailTemplateSelectionForm()
@ -398,9 +401,15 @@ class ProspectAdmin(SyncedObjectAdmin):
sent_count += 1 sent_count += 1
except Exception as e: except Exception as e:
error_emails.append(prospect.email) error_emails.append(prospect.email)
logger.error(f'Failed to send email to {prospect.email}: {str(e)}')
time.sleep(1) time.sleep(1)
if error_emails:
logger.error(f'Failed to send emails to: {error_emails}')
return sent_count, len(error_emails)
@admin.register(ProspectGroup) @admin.register(ProspectGroup)
class ProspectGroupAdmin(SyncedObjectAdmin): class ProspectGroupAdmin(SyncedObjectAdmin):
list_display = ('name', 'user_count') list_display = ('name', 'user_count')

Loading…
Cancel
Save