GODT-2181: Empty but not nil address from API

This commit is contained in:
Jakub 2023-01-10 13:47:00 +01:00 committed by Jakub Cuth
parent 0b61f8f146
commit 407c9fe1a6
2 changed files with 17 additions and 3 deletions

View File

@ -381,6 +381,18 @@ func writeMultipartEncryptedRFC822(header message.Header, body []byte) ([]byte,
return buf.Bytes(), nil
}
func addressEmpty(address *mail.Address) bool {
if address == nil {
return true
}
if address.Name == "" && address.Address == "" {
return true
}
return false
}
func getMessageHeader(msg proton.Message, opts JobOptions) message.Header { //nolint:funlen
hdr := toMessageHeader(msg.ParsedHeaders)
@ -390,12 +402,14 @@ func getMessageHeader(msg proton.Message, opts JobOptions) message.Header { //no
}
// mail.Address.String() will RFC2047-encode if necessary.
if msg.Sender != nil {
if !addressEmpty(msg.Sender) {
hdr.Set("From", msg.Sender.String())
}
if len(msg.ReplyTos) > 0 {
hdr.Set("Reply-To", toAddressList(msg.ReplyTos))
if !(len(msg.ReplyTos) == 1 && addressEmpty(msg.ReplyTos[0])) {
hdr.Set("Reply-To", toAddressList(msg.ReplyTos))
}
}
if len(msg.ToList) > 0 {

View File

@ -136,7 +136,7 @@ Feature: IMAP import messages
| foo@example.com | bridgetest@pm.test | Hello | Hello |
And IMAP client "1" sees 0 messages in "Inbox"
Scenario Outline: Import message without sender
Scenario Outline: Import message without sender to <mailbox>
When IMAP client "1" appends the following message to "<mailbox>":
"""
To: Lionel Richie <lionel@richie.com>