@ -260,10 +260,19 @@ class Email(object):
@classmethod
@classmethod
def resolve_destination ( cls , localpart , domain_name , ignore_forward_keep = False ) :
def resolve_destination ( cls , localpart , domain_name , ignore_forward_keep = False ) :
localpart_stripped = None
if os . environ . get ( ' RECIPIENT_DELIMITER ' ) in localpart :
localpart_stripped = localpart . rsplit ( os . environ . get ( ' RECIPIENT_DELIMITER ' ) , 1 ) [ 0 ]
alias = Alias . resolve ( localpart , domain_name )
alias = Alias . resolve ( localpart , domain_name )
if not alias and localpart_stripped :
alias = Alias . resolve ( localpart_stripped , domain_name )
if alias :
if alias :
return alias . destination
return alias . destination
user = User . query . get ( ' {} @ {} ' . format ( localpart , domain_name ) )
user = User . query . get ( ' {} @ {} ' . format ( localpart , domain_name ) )
if not user and localpart_stripped :
user = User . query . get ( ' {} @ {} ' . format ( localpart_stripped , domain_name ) )
if user :
if user :
if user . forward_enabled :
if user . forward_enabled :
destination = user . forward_destination
destination = user . forward_destination