title: How to do scheduled sending of email with django-mailer
body: <p>I'm making a django app that needs to be able to make emails and then send these out at a given time. I was thinking i could use django-mailer to put things in que and then send it of. But even though theire sample case list, lists that this is a feature, I cant seem to find out how.</p>
  
  <p>What I need is to be able to set a 'when_to_send' field in the message model of django-mailer, and when the cron job fires the send_mail function this needs to filter out the ones that has a 'when_to_send' date that is greater than the current time...</p>
  
  <pre><code>def send_all():
      """
      Send all eligible messages in the queue.
      """
  
      lock = FileLock("send_mail")
  
      logging.debug("acquiring lock...")
      try:
          lock.acquire(LOCK_WAIT_TIMEOUT)
      except AlreadyLocked:
          logging.debug("lock already in place. quitting.")
          return
      except LockTimeout:
          logging.debug("waiting for the lock timed out. quitting.")
          return
      logging.debug("acquired.")
  
      start_time = time.time()
  
      dont_send = 0
      deferred = 0
      sent = 0
  
      try:
          for message in prioritize():
              if DontSendEntry.objects.has_address(message.to_address):
                  logging.info("skipping email to %s as on don't send list " % message.to_address)
                  MessageLog.objects.log(message, 2) # @@@ avoid using literal result code
                  message.delete()
                  dont_send += 1
              else:
                  try:
                      logging.info("sending message '%s' to %s" % (message.subject.encode("utf-8"), message.to_address.encode("utf-8")))
                      core_send_mail(message.subject, message.message_body, message.from_address, [message.to_address])
                      MessageLog.objects.log(message, 1) # @@@ avoid using literal result code
                      message.delete()
                      sent += 1
                  except (socket_error, smtplib.SMTPSenderRefused, smtplib.SMTPRecipientsRefused, smtplib.SMTPAuthenticationError), err:
                      message.defer()
                      logging.info("message deferred due to failure: %s" % err)
                      MessageLog.objects.log(message, 3, log_message=str(err)) # @@@ avoid using literal result code
                      deferred += 1
      finally:
          logging.debug("releasing lock...")
          lock.release()
          logging.debug("released.")
  
      logging.info("")
      logging.info("%s sent; %s deferred; %s don't send" % (sent, deferred, dont_send))
      logging.info("done in %.2f seconds" % (time.time() - start_time))
  </code></pre>
  
  <p>Anyone see how to customize this function to don't send email's where the message.when_to_send field is greater than the current time?</p>