diff options
Diffstat (limited to 'internal/submit/message.go')
| -rw-r--r-- | internal/submit/message.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/internal/submit/message.go b/internal/submit/message.go index 3bf8834..db80503 100644 --- a/internal/submit/message.go +++ b/internal/submit/message.go @@ -17,14 +17,24 @@ import ( var messageIDRE = regexp.MustCompile(`^<[^<>\s]+@[^<>\s]+>$`) -func BuildMessage(sub Submission, recipient, messageIDDomain, identiconsCLI string, requireFace bool) (raw string, messageID string, err error) { +func BuildMessage(sub Submission, recipient, sender, messageIDDomain, identiconsCLI string, requireFace bool) (raw string, messageID string, err error) { messageID, err = newMessageID(messageIDDomain) if err != nil { return "", "", err } + identity, err := mail.ParseAddress(sub.From) + if err != nil { + return "", "", fmt.Errorf("invalid identity address") + } + transportSender, err := mail.ParseAddress(sender) + if err != nil || transportSender.Address == "" { + return "", "", fmt.Errorf("invalid transport Sender address") + } + headers := []string{ - "From: " + sub.From, + "From: " + identity.String(), + "Sender: " + transportSender.String(), "To: " + recipient, "Subject: " + sub.Subject, "Message-ID: " + messageID, |
