X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=lambdamail.git;a=blobdiff_plain;f=lambdamail.scm;h=49fbaec567299a75f807a219a48cf17f21e00840;hp=c3a68c1a2f37c97711015f4818a06ab64e3a7ede;hb=047b1aeff4dcdfbda20b3d063b4047dfed19b302;hpb=716c2b0f7ffa6e8b0821d3b293a20154fd9e3f3a diff --git a/lambdamail.scm b/lambdamail.scm index c3a68c1..49fbaec 100644 --- a/lambdamail.scm +++ b/lambdamail.scm @@ -17,7 +17,7 @@ (chicken sort) srfi-1 srfi-13 matchable base64) -(define lambdamail-version "LambdaMail v1.2.0") +(define lambdamail-version "LambdaMail v1.3.0") (define-record config host port spool-dir user group) (define-record message to from text user password) @@ -277,9 +277,15 @@ (define ((make-outgoing-smtp-session tcp-in tcp-out) . command) (match command (('expect codes ...) - (let ((result (read-line tcp-in))) - (print "Expecting one of " codes " got " result) - (or-list (map (lambda (code) (string-prefix? code result)) codes)))) + (let loop ((result (read-line tcp-in))) + (if (and (> (string-length result) 3) + (eq? (string-ref result 3) #\-)) + (loop (read-line tcp-in)) ;status continues on next line + (begin + (print "Expecting one of " codes " got " result) + (or-list (map (lambda (code) + (string-prefix? code result)) + codes)))))) (('send strings ...) (print "Sending " (if (> (string-length (car strings)) 30) (string-take (car strings) 30)