Skip to content

Instantly share code, notes, and snippets.

@tatocaster
Created June 17, 2020 20:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tatocaster/bdf9fc690bca376dcdc8c6daf78205ac to your computer and use it in GitHub Desktop.
Save tatocaster/bdf9fc690bca376dcdc8c6daf78205ac to your computer and use it in GitHub Desktop.
fetch messages from Gmail
func getLastMessageId(srv *gmail.Service) string {
r, err := srv.Users.Messages.List(user).MaxResults(100).Q("to:testuser+garminlivetrack@gmail.com is:unread").Do()
if err != nil {
log.Fatalf("Unable to retrieve messages: %v", err)
}
if len(r.Messages) == 0 {
fmt.Println("No messages found.")
os.Exit(1)
}
return r.Messages[len(r.Messages)-1].Id
}
func getLastMessageData(srv *gmail.Service, lastMessageId string) string {
r, err := srv.Users.Messages.Get(user, lastMessageId).Do()
if err != nil {
log.Fatalf("Unable to retrieve message: %v", err)
}
if len(r.Id) == 0 {
fmt.Println("No message data found.")
return ""
}
return r.Payload.Body.Data
}
func markAsRead(srv *gmail.Service, lastMessageId string) {
var labels []string
labels = append(labels, "UNREAD")
_, err := srv.Users.Messages.Modify(user, lastMessageId, &gmail.ModifyMessageRequest{RemoveLabelIds: labels}).Do()
if err != nil {
log.Fatalf("Unable to modify message: %v", err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment