[REBOL] Re: SMTP Authentication
From: Gary:Jones:usap:gov at: 29-Apr-2004 17:28
> My SMTP server requires authentication with a username and
> password before allowing mail to be sent.
> I found esend.r and esmtp.r, installed those, ran them
> individually as in the instructions and then tries to use
> esend to send a mail.
> It ran without an error, but never popped up anuthing to
> ask me for a username and password to authenticate with.
>Anyone know what the problem is?
I wrote those patches several years ago. I'm surprised that it ran without error, because
more recent REBOLs less aggressively reduce certain information.
With the newer versions of REBOL, I have successfully used this newer patch with MS Exchange
server(watch for line wrap):
system/schemes/smtp/handler/open-check: [none "220" ["EHLO" system/network/host] "250"
"AUTH LOGIN" "334" [port/user] "334" [port/pass] "235"]
Then, I would throw the following view script in front of any script that used Exchange
email. Note that the script encodes the username and password in base 64, which is required
by MS Exchange Server. You may of course replace "MSusername" with the default that you
would like presented. Hitting return key advances the field and does final entry.
view lo: layout [
f: field "MSusername" [
system/schemes/smtp/user: copy enbase/base value 64
field hide [
system/schemes/smtp/pass: copy enbase/base value 64
do [focus f]
Then, you should be able to use the regular REBOL send command for email.
Without knowing which email smtp server to which you are connecting, it is impossible
to know how to encode the authentication information. I would try this method first,
especially if it is an MS Exchange server. If it does not work, next try the:
command and then send a test email and capture the output. Generally, right before the
authentication is sent the server indicates what form of authentication and encoding
may be required. Obscuring any sensitive information, you can report that back here,
and I or someone may be able to direct you how to change the patch. If that fails to
capture the information, there is yet another way to figure this out that I can explain