Closed albertony closed 5 months ago
These changes look good to me overall, just one comment: I think we probably need to also handle =
when sent as a regular response (not an initial response)? See the other base64.StdEncoding.DecodeString
call done below in the same function, inside the for
loop.
I agree. Force pushed an update. I tested it with openssl s_client against my go-smtp based test server, and I assume a sequence like this is what you were thinking of:
EHLO localhost
250-Hello localhost
250-PIPELINING
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-CHUNKING
250-AUTH ANONYMOUS
250-SIZE 1024
250 LIMITS RCPTMAX=10
AUTH ANONYMOUS
334
=
PTAL
Oh, CI is unhappy now… Maybe the test actually tests the no initial response case, as opposed to the empty initial response one?
Seems like it:
func (toServerEmptyAuth) Start() (proto string, toServer []byte, err error) {
return "FOOAUTH", nil, nil
}
I've removed the test changes, and fixed up the outdated comments in 029f7513c5fe.
Ahhh, real sorry about that! I've been running that many times, and adjusted it in a previous iteration, but probably forgot about it during these last iterations. Thanks for fixing it (I'm not at computer right now anyway).
Yeah, no worries whatsoever, it's been a ride untangling this mess!
With anonymous authentication according to RFC4505 the trace information string is optional, and SMTP authentication extension described in RFC4954 states that:
Fixes #258