Files
audio-library-manager/private/mail.rkt
T
2026-06-28 14:02:42 +02:00

43 lines
1.2 KiB
Racket

#lang racket/base
(require net/smtp
net/head
simple-ini)
(provide mail-report
check-mail-config)
(define (get ini key msg)
(let ((v (ini-get ini 'mail key 'nil)))
(when (eq? v 'nil)
(error msg))
v))
(define (get-config ini)
(let* ((from (get ini 'from "configure from address as name <email>"))
(to (get ini 'to "configure to address as name <email>"))
(server (get ini 'server "configure the smtp server"))
(port (ini-get ini 'mail 'port 25))
(user (ini-get ini 'mail 'user #f))
(passwd (ini-get ini 'mail 'passwd #f))
)
(values from to server port user passwd)))
(define (mail-report ini subject report)
(let-values (((from to server port user passwd) (get-config ini)))
(let* ((hdr (standard-message-header from (list to) '() '() subject)))
(smtp-send-message server from (list to) hdr
(if (list? report) report (list report))
#:port-no port
#:auth-user user
#:auth-pwd passwd
)
)
)
)
(define (check-mail-config ini)
(let-values (((from to server port user passwd) (get-config ini)))
#t))