Subject: LIBESMTPD: E-Mail Client on UC Linux ?

From: Paul Romero <[email-masked]>
Date: Fri, 18 Jun 2004 13:19:32 -0700

Dear Brian and LIBESMTP Aficionados:

I downloaded the Debian version of the libesmtp source code
and can now send E-mail with the sample program--provided
with libesmtp-dev, under the following conditions.
(i.e. My system does not provide an SMTP server.)
The Linux "inetd" has established an Internet connection,
TCP port number 25 is used, and the host--as specified with "-h"--
identifies a system that provides SMTP service. (i.e. I
used symbolic names for the mail servers.) Some seemingly
important modifications were required which are detailed
below--as well as the other significant factors.

My system runs Linux "inetd" over an Ethernet
card, but I suspect this would work with a
modem connection once the IP/PPP to ISP connection
is established with cooperation from Linux
"pppd" and "inetd". Also, I did not actually
try the AUTH capability.

I plan to use my SMTP software to connect directly
to SMTP servers--without additional forwarding or
queuing software--and would like more insight into the following
general  issues: (i.e. My application is an MTA only between
the PC and the ISP SMTP Server--virtually an MUA.)

* Is the libesmtp package described on the website significantly
  different than the Linux version--libesmtp5 and libesmtp-dev ?

* Does libesmtp provide DIGEST-MD5 and GSS API-Kerberos authentication
  as well as CRAM-MD5 ? If not, what are the future plans
  in this respect ?

* Is libesmpt robust enough to handle direct connections to
  SMTP servers--via TCP/IP ? (i.e. Not on my local system.)

* Has libesmtp been ported to UC Linux or would you recommend
  doing so ? (i.e. Memory space is quite limited.)

* Do you know of US ISPs that would allow low cost
  experimentation with the AUTH mechanism ?

* What part of the documentation describes how
  to configure the "secret" etc. as used by
  the CRAM-MD5 variant of AUTH ?

* Would it be difficult to modify the libesmtp
  to facilitate the transmission of streaming E-mail ?
  (i.e. Multiple user data writes after a positive
   354 response to the SMTP DATA command instead
   of retrieving data from a file.)

If you feel that libesmtpd is not appropriate for
the environment I described, can you recommend
another software package ? Finally, the details
I mentioned earlier follow.

Best Regards,

Paul Romero

MODIFICATIONS

The libesmtp-dev software had to be recompiled
and reinstalled with the following modifications
before E-mail could be sent.
had to be set up for a UDP Datagram socket.

* The sample program was modified
pass both the host name and TCP port number 25 to
the lower level software.

* Before calling getaddrinfo() the parameters
had to be set up for a UDP Datagram socket.
(i.e. In protocol.c) The relevant parameters--
mostly in the "hints" structure are as follows:

. Protocol Family: PF_INET
. Socket Type: SOCK_DGRAM
. Protocol: IPPROTO_UDP
. Flags: AI_CANONNAME
(i.e. ai_canonname set to the host name which
is also passed as an argument to getaddrinfo().)

Notes:  The exact details are particular to Debian
but, I suspect they don't vary much on most versions
of Linux. Also, there is only 1 getaddrinfo() call
in the whole file.

* The socket() call to establish a connection
had to be modified to setup up a TCP streaming
socket. (i.e. In protocol.c) The socket() arguments
are as follows:

. domain: PF_INET
. type: SOCK_STREAM
. protocols: 0 (i.e. Mandatory for Debian.)

Note: There is only 1 getaddrinfo() call in
the same file, and I think this will work for
all versions of Linux.

SMTP SOFTWARE

* Standard Debian Version of libesmtp5--version 0.8--and
  libesmtp-dev--Version 8.11--packages.
  (i.e. Downloaded these from the Debian website.)

PROTOCOL SETUP

* Standard Linux & Socket TCP/IP tools.

* IP over LLC2 (i.e. via conventional Linux "inetd")

* Ethernet Card attached to PC Bus and
  connected to Netopia DSL router.

* DSL router uses ADSL and exchanges date
via ATM with the DSLAM at the CO.

HARDWARE ENVIRONMENT

* Normal Intel Based PC

* Ethernet Card

* Netopia DSL Router

OS

* Stock distribute of "Woody" Debian Linux.
  (i.e. Release 2.2.17 )

--
Paul Romero

RCOM Communications Software

Phone/Fax: (510)339-2628
E-Mail: [email-masked]