[racket] (smtp-send-message ...) with #:tls-encode

From: Stephen De Gabrielle (spdegabrielle at gmail.com)
Date: Tue Mar 8 03:20:15 EST 2011

Thanks Greg,

I'll test your patch against the Exchange server I'm wanting to connect to.
S.


On Mon, Mar 7, 2011 at 9:20 PM, Greg Hendershott
<greghendershott at gmail.com>wrote:

> > Does anyone have an example of using #:tls-encode (net/smtp)?
>
> No, in fact I'm seeing it fail today with an SMTP server that requires
> TLS on port 587.
>
> The reason seems to be that the server is expecting AUTH LOGIN whereas
> net/smtp only does AUTH PLAIN.
>
> I was able to get it to work (with this particular server) by making a
> local copy of smtp-send-message from net/smtp-unit.rkt and modifying
> lines 96-103:
>
>    (when auth-user
>      (log "auth\n")
>      (fprintf w "AUTH PLAIN ~a"
>               ;; Encoding adds CRLF
>               (base64-encode
>                (string->bytes/latin-1
>                 (format "~a\0~a\0~a" auth-user auth-user auth-passwd))))
>      (check-reply r 235 w))
>
> to be this instead:
>
>    (when auth-user
>      (if tls-encode
>          (begin
>            (log "auth login\n")
>            (fprintf w "AUTH LOGIN\r\n")
>            (check-reply r 334 w)
>            (fprintf w "~a"             ;encoding adds CRLF
>                     (base64-encode
>                      (string->bytes/latin-1 auth-user)))
>            (check-reply r 334 w)
>            (fprintf w "~a"             ;encoding adds CRLF
>                     (base64-encode
>                      (string->bytes/latin-1 auth-passwd)))
>            (check-reply r 235 w))
>          (begin
>            (log "auth plain\n")
>            (fprintf w "AUTH PLAIN ~a" ;encoding adds CRLF
>                     (base64-encode
>                      (string->bytes/latin-1
>                       (format "~a\0~a\0~a" auth-user auth-user
> auth-passwd))))
>            (check-reply r 235 w))))
>
> i.e. I tried to keep the AUTH PLAIN case while providing AUTH LOGIN on
> the assumption it will always be wanted when doing TLS. I don't deeply
> know the SMTP protocol. This is based on me observing one specific
> server and guessing what would work. That said, I hope this may help.
>
>
> On Fri, Feb 4, 2011 at 7:51 AM, Stephen De Gabrielle
> <spdegabrielle at gmail.com> wrote:
> > Hi,
> >
> > Does anyone have an example of using #:tls-encode (net/smtp)?
> >
> > Cheers,
> >
> > Stephen
> >
> > --
> > Stephen De Gabrielle
> > stephen.degabrielle at acm.org
> > Telephone +44 (0)20 85670911
> > Mobile        +44 (0)79 85189045
> > http://www.degabrielle.name/stephen
> >
> > _________________________________________________
> >  For list-related administrative tasks:
> >  http://lists.racket-lang.org/listinfo/users
>



-- 

--
Stephen De Gabrielle
stephen.degabrielle at acm.org
Telephone +44 (0)20 85670911
Mobile        +44 (0)79 85189045
http://www.degabrielle.name/stephen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110308/415602f5/attachment.html>

Posted on the users mailing list.