From 084731fec24932ad48c48c5147d129ce2af0ccc8 Mon Sep 17 00:00:00 2001 From: default Date: Fri, 21 Oct 2022 19:07:20 +0200 Subject: Send notification emails through the queue. --- data.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'data.c') diff --git a/data.c b/data.c index cef4028..7b623af 100644 --- a/data.c +++ b/data.c @@ -980,6 +980,25 @@ void enqueue_output(snac *snac, char *msg, char *actor, int retries) } +void enqueue_email(snac *snac, char *msg, int retries) +/* enqueues an email message to be sent */ +{ + int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes")); + xs *ntid = tid(retries * 60 * qrt); + xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid); + xs *qmsg = xs_dict_new(); + xs *rn = xs_number_new(retries); + + qmsg = xs_dict_append(qmsg, "type", "email"); + qmsg = xs_dict_append(qmsg, "message", msg); + qmsg = xs_dict_append(qmsg, "retries", rn); + + _enqueue_put(fn, qmsg); + + snac_debug(snac, 1, xs_fmt("enqueue_email %d", retries)); +} + + d_char *queue(snac *snac) /* returns a list with filenames that can be dequeued */ { @@ -997,7 +1016,7 @@ d_char *queue(snac *snac) time_t t2 = atol(bn + 1); if (t2 > t) - snac_debug(snac, 2, xs_fmt("queue not yet time for %s", v)); + snac_debug(snac, 2, xs_fmt("queue not yet time for %s [%ld]", v, t)); else { list = xs_list_append(list, v); snac_debug(snac, 2, xs_fmt("queue ready for %s", v)); -- cgit v1.2.3