[squeak-dev] SqueakSource mail/smtp setup
Levente Uzonyi
leves at caesar.elte.hu
Tue Dec 3 01:59:13 UTC 2019
hi Tim,
On Sun, 1 Dec 2019, tim Rowledge wrote:
> An oddity spotted and possibly a bug at some level - when connecting to an SMTP server we use #ensureConnection, which uses #login, which sends #initiateSession. But the SMTPClient class>>openOnHost:port: over-rides the ProtocolClient class>>openOnHost:port: and adds another #initiateSession.
>
> I'm pretty sure that SMTPClient class>>openOnHost:port: can simply be removed but it's late on a sunday and reading RFCs has mangled too many braincells. I guess that sending the SMTP server 'EHLO' twice won't cause too many explosions in data centres but it may be a bit rude and certainly wastes network traffic. Does anyone have a strong attachment to double-initialising the connection?
The class-side method is indeed flawed and unnecessary. It should be
removed.
>
> I think it would also be useful to add a utility mail sending method that takes a user name and password for those servers wanting them.
>
> Lastly, the EHLO command wants that awkward local host name, just like SqueakSource does. Levente's suggestion of fudging it to 127.0.0.1 for smtp seems to work ok but it probably isn't bullet-proof. We sure could do with a decently reliable way to get a suitable value.
You must specify the name yourself. There is no way to find out the FQDN
of your outgoing IP address from your machine without the help of an
external host, but that is what should be sent in the first place.
127.0.0.1 works, because the RFC allows it, and because of the above: an
internal host cannot know its FQDN.
If your machine had a network interface configured with a global IP
address, then the primLocalAddress could return it to your image. But
nowadays most machines are behind a NAT, so your machine is very unlikely
to have such address.
And even if your machine had such address, your network interface would
have to be called eth0 or wlan0 on linux, because those names are
hardcoded into the VM. On my machine, no such interface exists, so the
primitive always returns 0.0.0.0. That's another bug to be fixed.
Levente
>
> tim
> --
> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> Strange OpCodes: MC: Melt down Core
More information about the Squeak-dev
mailing list
|