blob: 36ae5f6fb3ede9d1b2691dd9d8168992d7db22ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
package services
import (
"dove/messages"
"dove/utils/email"
"dove/utils/logger"
)
func ProcessEmail(rawMessage []byte, recipientAddresses []string) error {
parsedEmail, parseError := email.Parse(rawMessage)
if parseError != nil {
logger.Errorf(LOG_PREFIX, messages.EmailParseFailed, parseError)
return parseError
}
mailboxes := ResolveMailboxes(recipientAddresses)
if len(mailboxes) == 0 {
return nil
}
for _, mailbox := range mailboxes {
if storeError := storeEmailForMailbox(rawMessage, parsedEmail, mailbox); storeError != nil {
logger.Errorf(LOG_PREFIX, messages.EmailStoreFailed, storeError)
return storeError
}
}
logger.Infof(LOG_PREFIX, messages.EmailProcessed, len(mailboxes))
return nil
}
|