diff --git a/internal/smtp/user.go b/internal/smtp/user.go index fd857dee..89d59ff2 100644 --- a/internal/smtp/user.go +++ b/internal/smtp/user.go @@ -251,6 +251,8 @@ func (su *smtpUser) Send(returnPath string, to []string, messageReader io.Reader return } + message.Sender.Address = pmapi.ConstructAddress(message.Sender.Address, addr.Email) + kr, err := su.client().KeyRingForAddressID(addr.ID) if err != nil { return diff --git a/test/features/bridge/smtp/send/mixed_case.feature b/test/features/bridge/smtp/send/mixed_case.feature new file mode 100644 index 00000000..747a6720 --- /dev/null +++ b/test/features/bridge/smtp/send/mixed_case.feature @@ -0,0 +1,38 @@ +Feature: SMTP sending with mixed case address + Background: + Given there is connected user "user" + And there is SMTP client logged in as "user" + + Scenario: Mixed sender case in sender address + When SMTP client sends message + """ + From: Bridge Test <[userAddress|capitalize]> + To: Internal Bridge + + hello + + """ + Then SMTP response is "OK" + And mailbox "Sent" for "user" has messages + | from | to | subject | + | [userAddress] | bridgetest@protonmail.com | | + And message is sent with API call + """ + { + "Message": { + "Subject": "", + "Sender": { + "Name": "Bridge Test" + }, + "ToList": [ + { + "Address": "bridgetest@protonmail.com", + "Name": "Internal Bridge" + } + ], + "CCList": [], + "BCCList": [], + "MIMEType": "text/plain" + } + } + """ diff --git a/test/mocks/smtp.go b/test/mocks/smtp.go index 69529914..59efb8c6 100644 --- a/test/mocks/smtp.go +++ b/test/mocks/smtp.go @@ -75,6 +75,7 @@ func (c *SMTPClient) SendCommands(commands ...string) *SMTPResponse { for _, command := range commands { command = strings.ReplaceAll(command, "[userAddress]", c.address) + command = strings.ReplaceAll(command, "[userAddress|capitalize]", strings.Title(c.address)) tstart := time.Now() diff --git a/unreleased.md b/unreleased.md index 4bde40bf..0d2cf883 100644 --- a/unreleased.md +++ b/unreleased.md @@ -9,3 +9,6 @@ Changelog [format](http://keepachangelog.com/en/1.0.0/) ### Removed ### Changed + +### Fixed +CSB-331 Fix sending error due to mixed case in sender address.