[squeak-dev] SMTPClient with bad command sequence
Torsten Bergmann
astares at gmx.de
Thu Mar 27 22:45:24 UTC 2008
Hi,
I want to send a mail using an authenticated SMTP server.
But Squeak does not deliver the mail after evaluating the
following code:
|ip client message|
ip := NetNameResolver addressForName: 'smtp.yourprovider.com'.
client := SMTPClient new.
client user: 'itsme'.
client password: 'mypassword'.
client openOnHost: ip port: 25.
message := 'From: "noreply at sender.com"
To: abc at def.com
Subject: Test
Just a test'.
[client mailFrom: 'noreply at sender.com' to: {'abc at def.com'} text: message.
client quit] ensure: [client close]
The SMTP server sends back an "503 Bad sequence of commands" error.
After digging into the protocol I found out the correct order
(HELO was missing) and patched the system by adding the following
method to SMTPClient
ensureConnection
self isConnected
ifTrue: [^self].
self stream
ifNotNil: [self stream close].
self stream: (SocketStream openConnectionToHost: self host port: self port).
self checkResponse.
self initiateSession.
self login
Only the line with "self initiateSession" is new compared to the superclass method in ProtocolClient. But it is awfull to copy down
most parts of the superclass method.
Who is taking care of the Network-Protocols package so we can
apply a better (refactored) solution?
Thx
Torsten
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger
More information about the Squeak-dev
mailing list
|