aboutsummaryrefslogtreecommitdiff
path: root/gn2/wqflask/send_mail.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn2/wqflask/send_mail.py')
-rw-r--r--gn2/wqflask/send_mail.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/gn2/wqflask/send_mail.py b/gn2/wqflask/send_mail.py
new file mode 100644
index 00000000..299c866a
--- /dev/null
+++ b/gn2/wqflask/send_mail.py
@@ -0,0 +1,51 @@
+import datetime
+import time
+
+import simplejson as json
+
+from redis import StrictRedis
+Redis = StrictRedis()
+
+import mailer
+
+
+def timestamp():
+ ts = datetime.datetime.utcnow()
+ return ts.isoformat()
+
+
+def main():
+ while True:
+ print("I'm alive!")
+
+ # Set something so we know it's running (or at least been running recently)
+ Redis.setex("send_mail:ping", 300, time.time())
+
+ msg = Redis.blpop("mail_queue", 30)
+
+ if msg:
+ # Queue name is the first element, we want the second, which is the actual message
+ msg = msg[1]
+
+ print("\n\nGot a msg in queue at {}: {}".format(timestamp(), msg))
+ # Todo: Truncate mail_processed when it gets to long
+ Redis.rpush("mail_processed", msg)
+ process_message(msg)
+
+
+def process_message(msg):
+ msg = json.loads(msg)
+
+ message = mailer.Message()
+ message.From = msg['From']
+ message.To = msg['To']
+ message.Subject = msg['Subject']
+ message.Body = msg['Body']
+
+ sender = mailer.Mailer('localhost')
+ sender.send(message)
+ print("Sent message at {}: {}\n".format(timestamp(), msg))
+
+
+if __name__ == '__main__':
+ main()