Link new mail utility.

This commit is contained in:
Dominik Pantůček 2023-04-10 21:00:33 +02:00
parent 5a406460a2
commit 167dc90a65
2 changed files with 31 additions and 13 deletions

View file

@ -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)

View file

@ -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))))
)