Depending of how complicated you want it to be of course.
I would implement it by using the basic goroutines, a wait group to keep track of the goroutines and sleep for the recurring duration.
Maybe a more optimal solution would be to use a workerpool.
Also what amount of emails are we talking about and what kind of recurring duration(1/hour or 1/year)