-
-;;; SMTP transactions
-;;
-
-(define (make-smtp-session in-port out-port config)
- (let ((smtp-say (lambda args (write-line (conc (apply conc args) "\r") out-port)))
- (user "")
- (password ""))
- (lambda msg
- (match msg
- (('get-line) (read-line in-port))
- (('set-user! u) (set! user u))
- (('set-password! p) (set! password p))
- (('auth-success) (smtp-say "235 Authentication successful"))
- (('greet) (smtp-say "220 " (config-host config)
- " LambdaMail v" lambdamail-version))
- (('ok) (smtp-say "250 ok"))
- (('ehlo host)
- (smtp-say "250-" (config-host config) " Hello " host)
- (smtp-say "250 AUTH PLAIN"))
- (('intermediate) (smtp-say "354 intermediate"))
- (('close) (smtp-say "221 closing transmission channel"))
- (('not-implemented) (smtp-say "502 command not implemented"))))))