[comp.soft-sys.andrew] AMS and MMDF

curtisg@sco.COM (Curtis Galloway) (12/20/90)

I'm having some trouble setting up the Andrew Message System to work
with our MMDF system, and I'm hoping someone can give me some helpful
hints.

I'm running the R4 Andrew distribution, patchlevel 7; here's the
relevant bits from my AndrewSetup file:

=====
ThisDomain: sco.COM
AMS_UseShortFileNames: yes
AMS_MailBoxPrefix: /usr/spool/mail
MessagesAutoBugAddress: "curtisg@sco.COM"
OldSendmailProgram:/usr/andrew/bin/oldsendmail
AMS_UseWP: no
AMS_ValidateDestHosts: no
AMS_UUCPSupported: yes
AMS_DeliveryViaHostTable: no
AMS_DeliveryViaGethostbyname: no
AMS_AliasesValidation: yes
AMS_PasswdValidation: 0
AMS_WPValidation: 0
#AMS_NoDomainPreferredOnLocalMail: yes
=====

I'm running into several problems, although I have been using Messages
to read and send mail successfully most of the time.

The first problem is that AMS doesn't seem to recognize external UUCP
addresses.  An address of the form "machine!user" gets turned into
"machine!user@sco.COM", which works but is pretty ugly.

The second problem comes in replying to mail from older mailers here.
Often, the address line is of the form:
"To: john peter carl"
When I reply to a message like this, I get:
"To: john.peter.carl@sco.COM"
I assume that AMS is trying to parse the address as if it were a
complete name, and then inserting its favorite space-replacement
character to turn it into a valid address.  I'd like to be able to
modify or turn off this behavior.

The next problem is with alias validation.  I patched the message
server code to read from the file /usr/lib/mail/aliases instead of
/usr/lib/aliases.  Unfortunately, this seems to have had no effect.
It will accept anything as a valid user name, whether or not it's in
the alias file.

Next, /usr/lib/sendmail doesn't quite work correctly on my system.  My
replacement "oldsendmail" converts the arguments from sendmail and
calls execmail, which does the same job.  However, execmail validates
the addresses itself and returns an error code if an address is
invalid.  I'd like to be able to use this information, but for now, I
just have to ignore it because AMS doesn't expect the dropoff program
to return any sort of advisory error messages.

Finally, has any work been done to make the mail file reading code
recognize more complex message separators?  Specifically, I'd like it
to understand that messages are delimited by a string of four ^A
characters at their beginning and end, rather than just separated by a
single character.

Thanks in advance for your comments.

--Curt

--
Curtis Galloway
The Santa Cruz Operation, Inc.
uunet!sco!curtisg -or- curtisg@sco.com

nsb@THUMPER.BELLCORE.COM (Nathaniel Borenstein) (12/21/90)

Excerpts from internet.info-andrew: 19-Dec-90 AMS and MMDF Curtis
Galloway@uunet.uu (2606)

> I'm running into several problems, although I have been using Messages
> to read and send mail successfully most of the time.

> The first problem is that AMS doesn't seem to recognize external UUCP
> addresses.  An address of the form "machine!user" gets turned into
> "machine!user@sco.COM", which works but is pretty ugly.

As you say, it works, which means it does indeed recognize the addresses
or it wouldn't pass them through.  What you're complaining about is that
you don't like the way it rewrites them, even though it is completely
legal and works.  OK, so it's ugly.  The only way I know of to get rid
of it is to use the AndrewSetup option
"AMS_NoDomainPreferredOnLocalMail: 1".  HOWEVER, if you do that, all of
your local mail addresses will be written without the trailing
"@sco.com" and therefore will NOT work right when sent to remote sites
UNLESS you configure sendmail (or mmdf) to rewrite them all properly. 
(This can be done with sendmail, though it is ugly.  I don't know enough
about MMDF to comment.)

> The second problem comes in replying to mail from older mailers here.
> Often, the address line is of the form: "To: john peter carl" When I
reply to a message like this, I get: 
> "To: john.peter.carl@sco.COM"
> I assume that AMS is trying to parse the address as if it were a
> complete name, and then inserting its favorite space-replacement
> character to turn it into a valid address.  I'd like to be able to
> modify or turn off this behavior.

I'd have to see the messages that you're replying to.  Offhand, I
hypothesize that someone is sending you mail with a pre-RFC822 mailer,
in which case it isn't really reasonable to expect anything to work. 
That is, the thing you're replying to may have a line like "To: john
peter carl" in which case AMS really is doing the only plausible thing. 
(The error may not get caught until later than you would expect because
you've turned off validation, as mentioned in the next point.)

> The next problem is with alias validation.  I patched the message server
> code to read from the file /usr/lib/mail/aliases instead of
> /usr/lib/aliases.  Unfortunately, this seems to have had no effect. It
> will accept anything as a valid user name, whether or not it's in the
> alias file.

I think this is because your AndrewSetup file, as you note, sets
AMS_PasswdValidation to 0 but donesn't give some other kind of
validation for local names.  What you've basically done is to tell AMS
that *everything* is a valid local name.  If you've turned off password
file validation, and you haven't replaced it with WP validation or
something else, how do you expect it to validate local names?  It isn't
clear to me what you were expecting to happen, so I can't comment on
what isn't working as you expected...

> Next, /usr/lib/sendmail doesn't quite work correctly on my system.  My
> replacement "oldsendmail" converts the arguments from sendmail and calls
> execmail, which does the same job.  However, execmail validates the
> addresses itself and returns an error code if an address is invalid. 
> I'd like to be able to use this information, but for now, I just have to
> ignore it because AMS doesn't expect the dropoff program to return any
> sort of advisory error messages.

Well, certainly it takes a numeric error code from the oldsendmail
program and reports success or failure; where the error code is one of
sendmail's more meaningful ones, I think it even uses that, but I don't
recall for sure.

> Finally, has any work been done to make the mail file reading code
> recognize more complex message separators?  Specifically, I'd like it to
> understand that messages are delimited by a string of four ^A characters
> at their beginning and end, rather than just separated by a single
character. 

I assume here that you're talking about reading things from
/usr/spool/mail/xxx.  The short answer is no, there's no such code, but
it would be VERY easy to add.  The relevant code is in
ams/libs/ms/cvtold.c, circa line 250.

Hope that helps; where it doesn't, please feel free to add some
clarifying explanation and ask again!  -- Nathaniel