Extremely WIP, but now messages appear in the evolution list pane
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net/mail"
|
||||
)
|
||||
|
||||
@@ -14,31 +15,26 @@ type SpoolInterface interface {
|
||||
// FIXME: we don't actually spool for now, we just store it to each user's
|
||||
// mailbox. This might lead to oddness in the partial delivery case.
|
||||
func (c *concrete) SpoolMessage(recipients []Account, r io.Reader) error {
|
||||
message, err := mail.ReadMessage(r)
|
||||
data, err := ioutil.ReadAll(r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// FIXME: we can assign our own ID in this case
|
||||
mid := message.Header.Get("Message-ID")
|
||||
if mid == "" {
|
||||
return fmt.Errorf("No Message-ID for this email")
|
||||
}
|
||||
|
||||
body, err := ioutil.ReadAll(message.Body)
|
||||
message, err := mail.ReadMessage(bytes.NewReader(data))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, recipient := range recipients {
|
||||
message := Message{
|
||||
ID: mid,
|
||||
Username: recipient.Username,
|
||||
Mailbox: "INBOX", // FIXME: at some point this will be changeable
|
||||
Header: message.Header,
|
||||
Body: body,
|
||||
Mailbox: recipient.DefaultMailbox,
|
||||
Header: message.Header,
|
||||
EML: data,
|
||||
}
|
||||
|
||||
log.Printf("Creating email: %#v", message)
|
||||
log.Print(string(data))
|
||||
|
||||
if err := c.CreateMessage(message); err != nil {
|
||||
return err
|
||||
}
|
||||
|
Reference in New Issue
Block a user