diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 6da5e33a5..edb266c51 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -468,7 +468,12 @@ class MailAccountHandler(LoggingMixin): def _correspondent_from_name(self, name: str) -> Correspondent | None: try: - return Correspondent.objects.get_or_create(name=name)[0] + return Correspondent.objects.get_or_create( + name=name, + defaults={ + "match": name, + }, + )[0] except DatabaseError as e: self.log.error(f"Error while retrieving correspondent {name}: {e}") return None diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index d81a130da..70f7be50f 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -26,6 +26,7 @@ from rest_framework import status from rest_framework.test import APITestCase from documents.models import Correspondent +from documents.models import MatchingModel from documents.tests.utils import DirectoriesMixin from documents.tests.utils import FileSystemAssertsMixin from paperless_mail import tasks @@ -446,6 +447,8 @@ class TestMail( c = handler._get_correspondent(message, rule) self.assertIsNotNone(c) self.assertEqual(c.name, "someone@somewhere.com") + self.assertEqual(c.matching_algorithm, MatchingModel.MATCH_ANY) + self.assertEqual(c.match, "someone@somewhere.com") c = handler._get_correspondent(message2, rule) self.assertIsNotNone(c) self.assertEqual(c.name, "me@localhost.com")