def __queue_handler(mail_credentials_path, frequency, queue):
    """Traverses the given queue and concatenates by lines all message texts."""
    if not queue.empty():
        subject = __generate_subject(frequency)
        lines_list = []
        while not queue.empty():
            lines_list.append(queue.get()[1])
        msg = '\n'.join(lines_list)
        try:
            mail_credentials = json.loads(open(mail_credentials_path).read())
            Utils.sendmail(mail_credentials, subject, msg)
            mail_credentials = None
        except:
            print "Unexpected error:", traceback.format_exc()
            print("FATAL ERROR: irrecoverable information loss :(")
def __process_message(mail_credentials_path, msg):
    sched = msg["schedule"]
    txt = __generate_message_line(msg)

    if sched != str(__schedules.SILENTLY):
        sys.stderr.write(txt + "\n")

    if sched == str(__schedules.INSTANTANEOUSLY):
        subject = __generate_subject(__schedules.INSTANTANEOUSLY, msg["name"])
        try:
            mail_credentials = json.loads(open(mail_credentials_path).read())
            Utils.sendmail(mail_credentials, subject, txt)
            mail_credentials = None
        except:
            print "Unexpected error:", traceback.format_exc()

    elif sched != str(__schedules.SILENTLY):
        __schedule2queue[sched].put((msg["datetime"], txt))