feat(PROJ-26,PROJ-38): IMAP LDAP-Auth + Mail-Threading
This commit is contained in:
@@ -28,6 +28,8 @@ type ParsedMail struct {
|
||||
CC []string
|
||||
Subject string
|
||||
MessageID string
|
||||
InReplyTo string // In-Reply-To header (single message-id, no angle brackets)
|
||||
References []string // References header (list of message-ids, no angle brackets)
|
||||
TextBody string
|
||||
HTMLBody string
|
||||
Date time.Time
|
||||
@@ -81,6 +83,21 @@ func Parse(raw []byte) (*ParsedMail, error) {
|
||||
msgID := msg.Header.Get("Message-Id")
|
||||
pm.MessageID = strings.Trim(msgID, "<>")
|
||||
|
||||
// In-Reply-To - strip angle brackets
|
||||
if irt := msg.Header.Get("In-Reply-To"); irt != "" {
|
||||
pm.InReplyTo = strings.Trim(strings.TrimSpace(irt), "<>")
|
||||
}
|
||||
|
||||
// References - space-separated list of message-ids
|
||||
if refs := msg.Header.Get("References"); refs != "" {
|
||||
for _, r := range strings.Fields(refs) {
|
||||
r = strings.Trim(r, "<>")
|
||||
if r != "" {
|
||||
pm.References = append(pm.References, r)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Date — try go-message parser first, then fallback formats, then zero
|
||||
if d, err := msg.Header.Date(); err == nil {
|
||||
pm.Date = d
|
||||
|
||||
Reference in New Issue
Block a user