From aa666ca4d3c793532ddb2fe305f430e2595a4ad3 Mon Sep 17 00:00:00 2001 From: Maciej Pasternacki Date: Sun, 30 Nov 2008 18:47:33 +0100 Subject: [PATCH] Coerce external-program params as simple-strings. --- src/common.lisp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/common.lisp b/src/common.lisp index a983482..2c0069e 100644 --- a/src/common.lisp +++ b/src/common.lisp @@ -203,14 +203,16 @@ address (may be a list), BODY-AND-HEADERS is fed to sendmail binary as stdin and it may be a string or an input stream. SENDMAIL-BINARY is full path to sendmail binary, as a string, default is taken from *CONFIG* section mailing, variable sendmail." - (external-program:run - sendmail-binary - (if (listp rcpt) - (list* (concatenate 'string "-f" sender) rcpt) - (list (concatenate 'string "-f" sender) rcpt)) - :input (etypecase body-and-headers - (stream body-and-headers) - (string (make-string-input-stream body-and-headers))))) + (flet ((ss (s) + (coerce s 'simple-string))) + (external-program:run + sendmail-binary + (if (listp rcpt) + (list* (concatenate 'string "-f" (ss sender)) (mapcar #'ss rcpt)) + (list (concatenate 'string "-f" (ss sender)) (ss rcpt))) + :input (etypecase body-and-headers + (stream body-and-headers) + (string (make-string-input-stream body-and-headers)))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Reporting conditions. @@ -285,10 +287,11 @@ Defaults to \"error\" in *DEFAULT-PATHNAME-DEFAULTS*.") (defun report-error-by-email (e rcpt &optional (sender (py-configparser:get-option *config* "mailing" "sender"))) (invoke-sendmail sender rcpt - (format nil "From: <~A>~%To: <~A>~%Subject: Uncaught error ~A~%~%~A" + (format nil "From: <~A>~%To: <~A>~%Subject: Uncaught error ~A~%Content-Type: text/plain; charset=utf-8~%Content-Transfer-Encoding: Quoted-Printable~%~%~A" sender rcpt e - (with-output-to-string (s) - (format-error-report s e))))) + (qp-utf8 + (with-output-to-string (s) + (format-error-report s e)))))) (defun report-error (e &optional (mailto (ignore-errors (py-configparser:get-option *config* "mailing" "error_mailto")))) -- 2.11.4.GIT