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