diff --git a/src/pretix/plugins/sendmail/models.py b/src/pretix/plugins/sendmail/models.py index ce2c2ac644..d6d0626d16 100644 --- a/src/pretix/plugins/sendmail/models.py +++ b/src/pretix/plugins/sendmail/models.py @@ -41,11 +41,13 @@ class ScheduledMail(models.Model): STATE_SCHEDULED = 'scheduled' STATE_FAILED = 'failed' STATE_COMPLETED = 'completed' + STATE_MISSED = 'missed' STATE_CHOICES = [ (STATE_SCHEDULED, STATE_SCHEDULED), (STATE_FAILED, STATE_FAILED), (STATE_COMPLETED, STATE_COMPLETED), + (STATE_MISSED, STATE_MISSED), ] id = models.BigAutoField(primary_key=True) diff --git a/src/pretix/plugins/sendmail/signals.py b/src/pretix/plugins/sendmail/signals.py index 23452d6d76..33c0aeaf5b 100644 --- a/src/pretix/plugins/sendmail/signals.py +++ b/src/pretix/plugins/sendmail/signals.py @@ -138,6 +138,12 @@ def sendmail_run_rules(sender, **kwargs): if m.computed_datetime != previous: m.save(update_fields=['last_computed', 'computed_datetime']) + mails.filter( + state=ScheduledMail.STATE_SCHEDULED, + computed_datetime__lte=timezone.now() - datetime.timedelta(days=2), + ).update( + state=ScheduledMail.STATE_MISSED + ) for m_id in mails.filter( state__in=(ScheduledMail.STATE_SCHEDULED, ScheduledMail.STATE_FAILED), computed_datetime__gte=timezone.now() - datetime.timedelta(days=2),