GODT-2181: Empty but not nil address from API
This commit is contained in:
parent
0b61f8f146
commit
407c9fe1a6
|
@ -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 {
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue