Here's a couple of questions:
Is mail_queue->put supposed to insert a message twice in the database? The only differences are the time_to_send value and the user_id.
This is what I get for a single message for one user:
1. user_id = 1, time_to_send = 2009-02-10 14:02:02
2. user_id = -1, time_to_send = 2009-02-10 14:00:02
The first one is what I would expect, but what purpose does the second one serve?
If I send the queue, the message will arrive twice. If I delete the one with the negative user_id, only a single mail gets sent.