fix channels
parent
5ca6aec6e9
commit
2c8bb32bb9
|
|
@ -30,7 +30,6 @@ func (e *Emailer) ReadIMAP() (chan *mail.Message, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer c.Logout()
|
||||
if err := c.Login(e.From, e.Password); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -42,23 +41,19 @@ func (e *Emailer) ReadIMAP() (chan *mail.Message, error) {
|
|||
to := mbox.Messages
|
||||
seqset := new(imap.SeqSet)
|
||||
seqset.AddRange(from, to)
|
||||
messages := make(chan *imap.Message, 10)
|
||||
go func(messages chan *imap.Message) {
|
||||
log.Println("start fetching")
|
||||
emails := make(chan *mail.Message)
|
||||
messages := make(chan *imap.Message)
|
||||
go func() {
|
||||
defer c.Logout()
|
||||
section := &imap.BodySectionName{}
|
||||
if err := c.Fetch(seqset, []imap.FetchItem{imap.FetchEnvelope, section.FetchItem()}, messages); err != nil {
|
||||
panic(err)
|
||||
log.Println("error fetching:", err)
|
||||
}
|
||||
log.Println("done fetching")
|
||||
}(messages)
|
||||
emails := make(chan *mail.Message)
|
||||
go func(emails chan *mail.Message) {
|
||||
log.Println("go read emails")
|
||||
}()
|
||||
go func() {
|
||||
defer close(emails)
|
||||
for msg := range messages {
|
||||
log.Println("email", msg)
|
||||
for _, v := range msg.Body {
|
||||
log.Println("body", v)
|
||||
m, err := mail.ReadMessage(v)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
|
|
@ -67,8 +62,7 @@ func (e *Emailer) ReadIMAP() (chan *mail.Message, error) {
|
|||
}
|
||||
}
|
||||
}
|
||||
log.Println("done reading emails")
|
||||
}(emails)
|
||||
}()
|
||||
return emails, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue