diff --git a/addons/mail/models/mail_mail.py b/addons/mail/models/mail_mail.py index e723f71bdc6..18267adb6d5 100644 --- a/addons/mail/models/mail_mail.py +++ b/addons/mail/models/mail_mail.py @@ -104,16 +104,19 @@ class MailMail(models.Model): messages to send (by default all 'outgoing' messages are sent). """ - if not self.ids: - filters = ['&', - ('state', '=', 'outgoing'), - '|', - ('scheduled_date', '<', datetime.datetime.now()), - ('scheduled_date', '=', False)] - if 'filters' in self._context: - filters.extend(self._context['filters']) - # TODO: make limit configurable - ids = self.search(filters, limit=10000).ids + filters = ['&', + ('state', '=', 'outgoing'), + '|', + ('scheduled_date', '<', datetime.datetime.now()), + ('scheduled_date', '=', False)] + if 'filters' in self._context: + filters.extend(self._context['filters']) + # TODO: make limit configurable + filtered_ids = self.search(filters, limit=10000).ids + if not ids: + ids = filtered_ids + else: + ids = list(set(filtered_ids) & set(ids)) res = None try: # auto-commit except in testing mode