2 years ago
#58222
Brennan
GO Imap constantly get email
I am trying to constantly get emails via go-imap but when i get a new email it doesn't print it just gets the initial 4 emails but doesnt print when a new email is received.
imapClient, erro := client.DialTLS("smtp.gmail.com:993", nil)
if erro != nil {
return
}
defer imapClient.Logout()
log.Println("Connected")
if err := imapClient.Login("email", "password"); err != nil {
log.Println(err)
}
log.Println("Logged in")
handler.Client = imapClient
mbox, err := imapClient.Select("INBOX", false)
if err != nil {
log.Println(err)
}
if mbox.Messages == 0 {
log.Println("No message in mailbox")
}
from := uint32(1)
to := mbox.Messages
if mbox.Messages > 3 {
// We're using unsigned integers here, only subtract if the result is > 0
from = mbox.Messages - 3
}
seqSet := new(imap.SeqSet)
seqSet.AddRange(from, to)
messages := make(chan *imap.Message, 10)
go func() {
fmt.Println("Fetching messages...")
err := imapClient.Fetch(seqSet, []imap.FetchItem{imap.FetchEnvelope}, messages)
if err != nil {
fmt.Println("Fetch error:", err)
return
}
}()
for msg := range messages {
log.Println("* " + msg.Envelope.Subject)
}
it just prints Fetching messages once and never again so im a bit confused on what todo.
go
imap
0 Answers
Your Answer