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

From: Stephen De Gabrielle (spdegabrielle at gmail.com)
Date: Tue Mar 8 04:55:31 EST 2011

I'm still getting no joy with this.

I've attached my test script, and will try on a different network (in case
it's my proxy server doing the damage)

-:(-
Welcome to DrRacket, version 5.1 [3m].
Language: racket; memory limit: 128 MB.
"Failed with reason::#(struct:exn:fail:network tcp-connect: connection to
smtp.gmail.com, port 465 failed (at step 6: No connection could be made
because the target machine actively refused it.; errno=10061)
#<continuation-mark-set>)"
---



On Tue, Mar 8, 2011 at 8:20 AM, Stephen De Gabrielle <
spdegabrielle at gmail.com> wrote:

> 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
>
>


-- 

--
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/19c1a5c0/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sms-test.rkt
Type: application/octet-stream
Size: 2122 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20110308/19c1a5c0/attachment.obj>

Posted on the users mailing list.