I would use sendgrid.com and its awesome newsletter API, alsoi sendgrid takes care of spamming protection.
I wrote an module to interact with send grid through the API https://github.com/rochacbruno/pysendgrid But if you really want to use your own structure you should have a table with "email", "recipient", "status" Select 500 of your users which message has not been sent yet, send the messages, time.sleep(1 hour) and do it again. for every email sent you go to status table and check the "status" to "sent" -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.