diff --git a/addons/mass_mailing/models/mailing.py b/addons/mass_mailing/models/mailing.py index 67cbcfafe95..e88fb9e6fad 100644 --- a/addons/mass_mailing/models/mailing.py +++ b/addons/mass_mailing/models/mailing.py @@ -931,6 +931,7 @@ class MassMailing(models.Model): """Send an email to the responsible of each finished mailing with the statistics.""" self.kpi_mail_required = False + mails_sudo = self.env['mail.mail'].sudo() for mailing in self: user = mailing.user_id mailing = mailing.with_context(lang=user.lang or self._context.get('lang')) @@ -973,9 +974,10 @@ class MassMailing(models.Model): 'email_to': user.email_formatted, 'body_html': full_mail, 'auto_delete': True, + 'state': 'outgoing', } - mail = self.env['mail.mail'].sudo().create(mail_values) - mail.send(raise_exception=False) + mails_sudo += self.env['mail.mail'].sudo().create(mail_values) + return mails_sudo def _prepare_statistics_email_values(self): """Return some statistics that will be displayed in the mailing statistics email. diff --git a/addons/test_mail_full/tests/test_mass_mailing_statistics.py b/addons/test_mail_full/tests/test_mass_mailing_statistics.py index b9d552a717a..8a3f67ae0eb 100644 --- a/addons/test_mail_full/tests/test_mass_mailing_statistics.py +++ b/addons/test_mail_full/tests/test_mass_mailing_statistics.py @@ -47,7 +47,7 @@ class TestMailingStatistics(TestMassSMSCommon): self.assertEqual(mailing.opened_ratio, 30) self.assertEqual(mailing.sent, 10) - with self.mock_mail_gateway(mail_unlink_sent=False): + with self.mock_mail_gateway(mail_unlink_sent=True): mailing._action_send_statistics() self.assertEqual(len(self._new_mails), 1, "Mailing: a mail should have been created for statistics") @@ -57,7 +57,7 @@ class TestMailingStatistics(TestMassSMSCommon): self.assertEqual(mail.email_from, self.user_marketing_2.email_formatted) self.assertEqual(mail.email_to, self.user_marketing_2.email_formatted) self.assertEqual(mail.reply_to, formataddr((self.company_admin.name, '%s@%s' % (self.alias_catchall, self.alias_domain)))) - self.assertEqual(mail.state, 'sent') + self.assertEqual(mail.state, 'outgoing') # test body content: KPIs body_html = html.fromstring(mail.body_html) kpi_values = body_html.xpath('//div[@data-field="sms"]//*[hasclass("kpi_value")]/text()') diff --git a/addons/test_mass_mailing/tests/test_mailing_statistics.py b/addons/test_mass_mailing/tests/test_mailing_statistics.py index be4b193f09e..629b14658ef 100644 --- a/addons/test_mass_mailing/tests/test_mailing_statistics.py +++ b/addons/test_mass_mailing/tests/test_mailing_statistics.py @@ -53,7 +53,7 @@ class TestMailingStatistics(TestMassMailCommon): self.assertEqual(mailing.replied_ratio, 30) self.assertEqual(mailing.sent, 10) - with self.mock_mail_gateway(mail_unlink_sent=False): + with self.mock_mail_gateway(mail_unlink_sent=True): mailing._action_send_statistics() self.assertEqual(len(self._new_mails), 1, "Mailing: a mail should have been created for statistics") @@ -63,7 +63,7 @@ class TestMailingStatistics(TestMassMailCommon): self.assertEqual(mail.email_from, self.user_marketing_2.email_formatted) self.assertEqual(mail.email_to, self.user_marketing_2.email_formatted) self.assertEqual(mail.reply_to, formataddr((self.company_admin.name, '%s@%s' % (self.alias_catchall, self.alias_domain)))) - self.assertEqual(mail.state, 'sent') + self.assertEqual(mail.state, 'outgoing') # test body content: KPIs body_html = html.fromstring(mail.body_html) kpi_values = body_html.xpath('//div[@data-field="mail"]//*[hasclass("kpi_value")]/text()') @@ -95,6 +95,5 @@ class TestMailingStatistics(TestMassMailCommon): self.assertEqual(mail.author_id, self.user_marketing.partner_id) self.assertFalse(mail.email_from) self.assertFalse(mail.email_to) - self.assertTrue(mail.failure_reason) self.assertEqual(mail.reply_to, formataddr((self.company_admin.name, '%s@%s' % (self.alias_catchall, self.alias_domain)))) - self.assertEqual(mail.state, 'exception') + self.assertEqual(mail.state, 'outgoing')