From b8a33b96188f6c85979ee2a149a081caf7b57f2f Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Fri, 3 Nov 2023 10:35:36 +0100 Subject: [PATCH] fix(GODT-3041): Fix Invalid Or Missing message signature during send If we update the address after determining the sender address is different, we also need to refresh the identity state in order to use the right encryption keys. --- internal/services/smtp/smtp.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/services/smtp/smtp.go b/internal/services/smtp/smtp.go index 2cb2b4b5..d579e05d 100644 --- a/internal/services/smtp/smtp.go +++ b/internal/services/smtp/smtp.go @@ -95,6 +95,11 @@ func (s *Service) smtpSendMail(ctx context.Context, authID string, from string, // If the message contains a sender, use it instead of the one from the return path. if sender, ok := getMessageSender(parser); ok { from = sender + fromAddr, err = s.identityState.GetAddr(from) + if err != nil { + logrus.WithError(err).Errorf("Failed to get identity from sender address %v", sender) + return ErrInvalidReturnPath + } } // Load the user's mail settings.