[comp.mail.misc] Using Sendmail and MMDF on the same host

roy@phri.UUCP (Roy Smith) (12/02/87)

	I've just started looking into getting MMDF up on my 4.3BSD vax
because we have a phonenet-speaking (pmdf) VMS host we want to talk to.
The problem is that I don't want to get rid of sendmail (not that I have
any great love for sendmail, but it seems too radical a step).  Does
anybody have any experience running both MMDF and Sendmail at the same
time?  Seems like it should be pretty trivial (VMS machine calls in, gets a
phonenet connection to MMDF, which then hands off to sendmail via SMTP)
but I've been told that it's not that easy.

	Lacking that, anybody know of a phonenet module I can just plug
into sendmail?  My current plan is to graft the mmdf phonenet stuff into
sendmail, but if somebody has already invented that wheel, (or proven it
impossible) I'd like to know about it.
-- 
Roy Smith, {allegra,cmcl2,philabs}!phri!roy
System Administrator, Public Health Research Institute
455 First Avenue, New York, NY 10016

david@ms.uky.edu (David Herron -- Resident E-mail Hack) (12/03/87)

In article <3047@phri.UUCP> roy@phri.UUCP (Roy Smith) writes:
>The problem is that I don't want to get rid of sendmail (not that I have
>any great love for sendmail, but it seems too radical a step).  Does
>anybody have any experience running both MMDF and Sendmail at the same
>time?  Seems like it should be pretty trivial (VMS machine calls in, gets a
>phonenet connection to MMDF, which then hands off to sendmail via SMTP)
>but I've been told that it's not that easy.

egad ... why?  well, I suppose it falls under the heading of
not f*cking with it and it'll stay up.  But anyway ...

Yes, you could continue running your smtp daemon from sendmail,
and configure an SMTP daemon into MMDF.  MMDF is perfectly happy
with talking SMTP to the host it's currently running on.

Eventually, of course, you should convert to pure mmdf.  If you
don't want to get rid of sendmail because lots of programs send
mail by running sendmail directly, there is a program somewhere
in the mmdf sources which emulates the important functions of
sendmail.

The parts that "wouldn't be easy" would be where you have both
mailers trying to do the same thing.  i.e. don't run the MMDF
smtp daemon if you're running SendMail.  Also, if your sendmail
is delivering uucp mail, don't use mmdf for delivering uucp.

I have a couple pages I wrote the other night for a private message
to someone describing the reasons I like MMDF.  If anyone wants to
see this, I can post it.

>	Lacking that, anybody know of a phonenet module I can just plug
>into sendmail?  My current plan is to graft the mmdf phonenet stuff into
>sendmail, but if somebody has already invented that wheel, (or proven it
>impossible) I'd like to know about it.

Yes.  It's called PMDF if I remember correctly.  We got our copy
from the csnet people when we joined csnet and I'm sure we're not
allowed to re-distribute the code.  Following is the first part
of the README ...

I never ran pmdf here ... at the time we joined csnet we were running
sendmail, but I really didn't understand the sendmail configuration.
It just happened to work ...  We got both pieces of code just in
case I couldn't figure out what to do with mmdf.  Fortunately I
managed to figure mmdf out (it was the second try, as I'd tried
to understand mmdf once before when we were running BRL's 4.2)
I tossed sendmail in the garbage and have only looked back once,
and ended up going with something else in that case.
-------------------> Cut Here <-----------------------

Installation Instructions for V3 Unix 4.2 PMDF.     September 30, 1985
----------------------------------------------------------------------

This document describes the Unix 4.2 version of PMDF.  Ira Winston, at
the University of Pennsylvania, has provided this code for the use of
CSNET sites.  Several members have contributed enhancements and 
suggestions; their involvement is gratefully acknowledged.

Please address any questions about this code to the CSNET Coordination
and Information Center (CIC).  If we don't already know the answer, we
will either work on the problem ourselves or refer it to Ira.  Our
on-line address is cic@csnet-sh and our 24-hour hotline is (617) 497-2777.

This version of PMDF allows your site to either call the relay
(dial-out) or to have the relay call your site (dial-in).  If you are
set up for one mode and want to switch to the other, just notify the
CIC.  Dial-in sites can request any calling schedule from the CIC.
Dial-out sites set their own calling schedule.


Equipment Requirements
----------------------

Dial-in sites: a 300 or 1200 baud modem is required.  The CSNET-RELAY
is equipped with modems that handle Bell 103, 212 and Vadic 3400 protocols.

Dial-out sites: a 300 or 1200 baud autodialing modem is required.  The
autodialer should be the type where dialing commands are sent as a
stream of characters down the same terminal line as the data (e.g.
Hayes Smartmodem, Vadic 3451PA, etc.).  Units where the dialer and
modem are controlled independently (e.g. Vadic Automatic Calling Unit)
may be used by following the instructions in the document "pty.instructions".

Improvements in Version 2
-------------------------
Version 2 incorporates two improvements over Version 1.  First, it has dial-out
capability.  Second, it uses a double-buffering scheme to improve the
efficiency of the link-level protocol.  Without this double-buffering scheme,
the sending side had to wait for an acknowledgement before transmitting the
next packet.  This resulted in a line utilization of about 65%.  With the new
double-buffering scheme, the sending side can be transmitting the next packet
at the same time it is receiving the acknowledgement of the previous packet.
This results in a line utilization of about 85%.

Improvements in Version 3
-------------------------
Version 3 incorporates two new features and several bug-fixes.  The new
feature call-on-demand forces a connection attempt whenever Sendmail submits a
message to Unix-PMDF.  Support for opening connections to a psuedo-tty allows
the existing script facility to interact with programs on the local host (e.g.
tip).  Fixes include: calling the local delivery program (pmdf-del) even if
the connection terminates abnormally, hanging up the phone line before running
pmdf-del, more robust lockfile management for dialing-out, correct handling of
messages containing lines with single dots, correct handling of the SENDWINDOW
option, and better handling of failed-mail messages.
-- 
<---- David Herron -- The E-Mail guy            <david@ms.uky.edu>
<---- or:                {rutgers,uunet,cbosgd}!ukma!david, david@UKMA.BITNET
<---- 
<---- Classic beer bellies aren't born!  They're made!

matt@ncr-sd.UUCP (12/05/87)

In article <3047@phri.UUCP> roy@phri.UUCP (Roy Smith) writes:
	... talking about using MMDF with sendmail ...
>	Lacking that, anybody know of a phonenet module I can just plug
>into sendmail?  My current plan is to graft the mmdf phonenet stuff into
>sendmail, but if somebody has already invented that wheel, (or proven it
>impossible) I'd like to know about it.

Get the PMDF distribution, in particular the program called pmdf-master.
This program calls up another host using the phonenet protocol and
then delivers mail in both directions.  It spools mail into a directory,
with one message per file.  The format of the files are quite simple and
can be easily generated/decoded with a simple program.

I know this from experience since NCR does exactly this to exchange mail
with the CSNET relay machine.  The implementation delivers rfc976 mail
to pmdf-send which converts the message to rfc822 before
storing the message in PMDF format.  Pmdf-master is executed
from the crontab or on demand to exchange mail with relay.cs.net; once
finished pmdf-rcv converts the incoming messages from rfc822 to rfc976
and hands them off to our MTA.

The PMDF distribution tape is available from Ned Freed at Harvey Mudd
College (for $50?), or from CSNET for members of CSNET.  The only
program from the distribution that NCR uses is pmdf-master.  The two
conversion programs are available but will be real easy to write since 
you will not have to convert random rfc976 messages to legal rfc822.

Disclaimer: I'm no spokesman for NCR, I just built the thing.
-- 
Matt Costello	<matt.costello@SanDiego.NCR.COM>
+1 619 485 2926	<matt.costello%SanDiego.NCR.COM@Relay.CS.NET>
		{sdcsvax,cbosgd,pyramid,nosc.ARPA}!ncr-sd!matt

brian@ncrcan.UUCP (12/07/87)

In article <7807@g.ms.uky.edu> david@ms.uky.edu (David Herron -- Resident E-mail Hack) writes:
>In article <3047@phri.UUCP> roy@phri.UUCP (Roy Smith) writes:
>>The problem is that I don't want to get rid of sendmail (not that I have
>>any great love for sendmail, but it seems too radical a step).  Does
>>anybody have any experience running both MMDF and Sendmail at the same
>>time?  Seems like it should be pretty trivial (VMS machine calls in, gets a
>>phonenet connection to MMDF, which then hands off to sendmail via SMTP)
>>but I've been told that it's not that easy.
>
>egad ... why?  well, I suppose it falls under the heading of
>not f*cking with it and it'll stay up.  But anyway ...
>

I have a question... What is MMDF?   I am familiar with sendmail only
from my opportunity to work for the University of Toronto Computing Services,
during my university years.  This is a System V site.

I know what sendmail is used for, and what it can do, what it's configuration
files look like (can't read them, though :-)) , but not how it works.

I presume MMDF is similar, but maybe somebody could explain it a little more
to me?

Thanks,
	Brian.

-- 
 +-------------------+--------------------------------------------------------+
 | Brian Onn         | UUCP:..!{uunet!mnetor, watmath!utai}!lsuc!ncrcan!brian |
 | NCR Canada Ltd.   | INTERNET: Brian.Onn@Toronto.NCR.COM                    |
 +-------------------+--------------------------------------------------------+

roy@phri.UUCP (Roy Smith) (12/14/87)

In article <540@ncrcan.Toronto.NCR.COM> brian@ncrcan.Toronto.NCR.COM (Brian Onn) writes:
> I have a question... What is MMDF?

	MMDF and sendmail both perform the same function, that of a mail
delivery agent.  Whenever mail comes into a system (from any source;
generated locally by a user or a program, from uucp, from a network
connection, etc), the message is passed to the delivery agent which figures
out what to do with it -- append it to somebody's mailbox, forward it to
another system via one of several delivery mechanisms, pipe it into a
program, reject it as undeliverable, etc.  Delivery agents also handle such
functions as logging mail deliveries, expanding mailing list names, and
implementing aliases.

	One difference between sendmail and MMDF is how the output side is
interfaced (sendmail calls them mailers, MMDF calls them channels).  In
sendmail, a separate program is executed to do the delivers (for example,
for uucp delivery, sendmail will exec uux with the right arguments, and
feed it the mail message as stdin).  In MMDF, the channels are compiled
into the delivery agent.

	The main advantage MMDF has over sendmail (at least to me) is that
MMDF supports a PhoneNet channel; PhoneNet is a uucp-like protocol which is
used to transfer mail via dial-up connections.  We have another site here
which talks PhoneMail which we want to talk to.  An alternative is
something called cmdf which is a PhoneNet mailer which interfaces to
sendmail.
-- 
Roy Smith, {allegra,cmcl2,philabs}!phri!roy
System Administrator, Public Health Research Institute
455 First Avenue, New York, NY 10016

david@ms.uky.edu (David Herron -- Resident E-mail Hack) (12/14/87)

In article <3062@phri.UUCP> roy@phri.UUCP (Roy Smith) writes:
>	One difference between sendmail and MMDF is how the output side is
>interfaced (sendmail calls them mailers, MMDF calls them channels).  In
>sendmail, a separate program is executed to do the delivers (for example,
>for uucp delivery, sendmail will exec uux with the right arguments, and
>feed it the mail message as stdin).  In MMDF, the channels are compiled
>into the delivery agent.

eh?  come again?  If the channels are compiled into the system
then what's all that stuff in /usr/mmdf/chans?

MMDF uses seperate processes for most of the steps of moving
the mail around.  For instance, when you send mail, your user
agent starts up an instance of /usr/mmdf/submit and talks to
it across a pair of pipes.  Eventually the user agent tells submit
to send the mail, but all submit does is write the information
into the proper channel directories.  If the channel is marked
for immediate delivery then it starts up a /usr/mmdf/deliver
to handle the delivery.  IN any event, deliver eventually runs,
see's the message, and starts up the proper channel process
to handle the delivery.  (either local deliver, or by starting
up a uux, or whatever).

Certainly doesn't seem very compiled in when you got all these
processes running around.
-- 
<---- David Herron -- The E-Mail guy            <david@ms.uky.edu>
<---- or:                {rutgers,uunet,cbosgd}!ukma!david, david@UKMA.BITNET
<----
<---- Winter health warning:  Remember, don't eat the yellow snow!