From 167dc90a65047c7f97cb42b2f3e0d2afef80131a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Mon, 10 Apr 2023 21:00:33 +0200 Subject: [PATCH] Link new mail utility. --- src/Makefile | 22 ++++++++++++++-------- src/util-mail.scm | 22 +++++++++++++++++----- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4ef8cb9..c14dd6d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -39,14 +39,15 @@ HACKERBASE-DEPS=hackerbase.scm month.import.scm \ environment.import.scm mailman.import.scm texts.import.scm \ tests.import.scm -HACKERBASE-OBJS=hackerbase.o testing.o listing.o month.o period.o ansi.o \ - util-dict-list.o command-line.o members-base.o primes.o \ - member-record.o configuration.o progress.o table.o cards.o \ - members-print.o member-fees.o members-dir.o util-csv.o \ - bank-account.o bank-fio.o members-payments.o member-parser.o \ - web-static.o environment.o mailman.o util-set-list.o \ - util-time.o util-tag.o util-io.o util-string.o util-io.o \ - util-list.o util-parser.o texts.o tests.o util-proc.o +HACKERBASE-OBJS=hackerbase.o testing.o listing.o month.o period.o \ + ansi.o util-dict-list.o command-line.o members-base.o \ + primes.o member-record.o configuration.o progress.o table.o \ + cards.o members-print.o member-fees.o members-dir.o \ + util-csv.o bank-account.o bank-fio.o members-payments.o \ + member-parser.o web-static.o environment.o mailman.o \ + util-set-list.o util-time.o util-tag.o util-io.o \ + util-string.o util-io.o util-list.o util-parser.o texts.o \ + tests.o util-proc.o util-mail.o .PHONY: imports imports: $(HACKERBASE-DEPS) @@ -308,3 +309,8 @@ UTIL-PROC-SOURCES=util-proc.scm util-proc.o: util-proc.import.scm util-proc.import.scm: $(UTIL-PROC-SOURCES) + +UTIL-MAIL-SOURCES=util-mail.scm util-io.import.scm + +util-mail.o: util-mail.import.scm +util-mail.import.scm: $(UTIL-MAIL-SOURCES) diff --git a/src/util-mail.scm b/src/util-mail.scm index b83ff7c..b7af659 100644 --- a/src/util-mail.scm +++ b/src/util-mail.scm @@ -32,14 +32,26 @@ ) (import scheme + (chicken base) + (chicken keyword) util-io) ;; Sends an email using the UNIX mail(1) utility. (define (send-mail body-lines . args) - ;; from - single string - ;; to - single string or list of strings - ;; subject - single string - #f) + (let ((from (get-keyword #:from args)) + (to (get-keyword #:to args)) + (subject (get-keyword #:subject args))) + (when (not to) + (error 'send-mail "requires #:to argument")) + (when (not subject) + (error 'send-mail "requires #:subject argument")) + (let ((tos (if (list? to) + to + (list to)))) + (apply process-send/recv + "mail" + "-r" from + "-s" subject + tos)))) ) -