diff --git a/lissmilter.py b/lissmilter.py index 0f57d96..f66dc66 100644 --- a/lissmilter.py +++ b/lissmilter.py @@ -75,9 +75,14 @@ def envrcpt(self, mail_to, *str): # Should only happen if no AssociationGroup called 'STYR' has been created yet pass + # Check if sender is valid before discarding any emails. A user sending 'from' the current domain, to an internal list, should add this as an extra email in the database. if not valid_sender: - self.setreply('554', '5.7.2', 'Sender <{}> not authorized for recipient ("{}"). Kontakta en ansvarig om du tycker det borde funka.'.format(self.envelope_from, to)) - return Milter.REJECT + if f'@{mail_domain}' in self.envelope_from: + # https://pymilter.org/pymilter/namespacemilter.html#a4c8bad190cb7f54cea87f1182732ce83 + return Milter.DISCARD + else: + self.setreply('554', '5.7.2', 'Sender <{}> not authorized for recipient ("{}"). Kontakta en ansvarig om du tycker det borde funka.'.format(self.envelope_from, to)) + return Milter.REJECT self.change_subject = is_production_list or is_mass_list or is_summons_list