diff --git a/mail_tracking_mailgun/README.rst b/mail_tracking_mailgun/README.rst index eb0ec7e4..7bc1421b 100644 --- a/mail_tracking_mailgun/README.rst +++ b/mail_tracking_mailgun/README.rst @@ -36,6 +36,8 @@ parameters: domain. - `mailgun.api_url`: It should be fine as it is, but it could change in the future. +- `mailgun.domain`: In case your sending domain is different from the one + configured in `mail.catchall.domain`. - `mailgun.validation_key`: If you want to be able to check mail address validity you must config this parameter with your account Public Validation Key. diff --git a/mail_tracking_mailgun/__manifest__.py b/mail_tracking_mailgun/__manifest__.py index 419b1ea6..6a6ab021 100644 --- a/mail_tracking_mailgun/__manifest__.py +++ b/mail_tracking_mailgun/__manifest__.py @@ -7,7 +7,7 @@ { "name": "Mail tracking for Mailgun", "summary": "Mail tracking and Mailgun webhooks integration", - "version": "10.0.1.1.3", + "version": "10.0.1.2.0", "category": "Social Network", "website": "https://odoo-community.org/", "author": "Tecnativa, " diff --git a/mail_tracking_mailgun/models/mail_tracking_email.py b/mail_tracking_mailgun/models/mail_tracking_email.py index fa431dd2..d702c1ec 100644 --- a/mail_tracking_mailgun/models/mail_tracking_email.py +++ b/mail_tracking_mailgun/models/mail_tracking_email.py @@ -71,7 +71,8 @@ class MailTrackingEmail(models.Model): raise ValidationError(_('There is no Mailgun API key!')) api_url = icp.get_param( 'mailgun.api_url', 'https://api.mailgun.net/v3') - domain = icp.get_param('mail.catchall.domain') + catchall_domain = icp.get_param('mail.catchall.domain') + domain = icp.get_param('mailgun.domain', catchall_domain) if not domain: raise ValidationError(_('A Mailgun domain value is needed!')) validation_key = icp.get_param('mailgun.validation_key') diff --git a/mail_tracking_mailgun/tests/test_mailgun.py b/mail_tracking_mailgun/tests/test_mailgun.py index 45cecd65..4f199e82 100644 --- a/mail_tracking_mailgun/tests/test_mailgun.py +++ b/mail_tracking_mailgun/tests/test_mailgun.py @@ -105,6 +105,11 @@ class TestMailgun(TransactionCase): self.test_event_delivered() with self.assertRaises(ValidationError): self.env['mail.tracking.email']._mailgun_values() + # now we set an specific domain for Mailgun: + # i.e: we configure new EU zone without loosing old domain statistics + self.env['ir.config_parameter'].set_param( + 'mailgun.domain', 'eu.example.com') + self.test_event_delivered() @mute_logger('odoo.addons.mail_tracking_mailgun.models' '.mail_tracking_email') @@ -170,9 +175,10 @@ class TestMailgun(TransactionCase): response = self.env['mail.tracking.email'].event_process( None, self.event, self.metadata) self.assertEqual('OK', response) - event = self.event_search('delivered') - self.assertEqual(event.timestamp, float(self.timestamp)) - self.assertEqual(event.recipient, self.recipient) + events = self.event_search('delivered') + for event in events: + self.assertEqual(event.timestamp, float(self.timestamp)) + self.assertEqual(event.recipient, self.recipient) # https://documentation.mailgun.com/user_manual.html#tracking-opens def test_event_opened(self):