- How is mvmda invoked?
- Some of how mvmda runs is controlled by a system-wide startup script
(in MFL), so some specifics will depend on the system-wide script that's
in place. But in general, mvmda is invoked with a number of
command-line options that are interpreted directly by the program,
followed by zero or more arguments that are interpreted by the
system-wide startup script. These arguments are most likely to be the
names of script files, and so that's how we'll talk about them here.
mvmda is invoked by specifying it as a program to handle the mail
by the local mail system. At MV we are running qmail, so the normal
case is to put a line in your relevant dot-qmail file. For an account
on the mailbox server, the line would look something like:
|/usr/local/bin/mvmda -q -l maildir++ -s maildir -r $HOME/Maildir -m INBOX $HOME/mvmda.mfl
and for the shell server, something like:
|/usr/local/bin/mvmda -q -l fs -r $HOME -s mbox -m Mailbox $HOME/mvmda.mfl
See the mvmda man page for information
about the command syntax. In the above examples, mvmda runs a delivery
script from the file named "mvmda.mfl" in your home directory.
The "USING" file that comes with the mvmf package has some hints for
using mvmda in other environments.
- If some of the command line arguments are interpreted by a
system-wide MFL script, doesn't this mess with the notion of a standard
application interface?
- Yes, that could be problematic. In one installation, command-line
arguments might be script file names, and in another, they might have
other meaning. But one of the goals of mvmda is to give some control to
the system administrator, so we let them decide.
- OK, then how about a degenerate mode providing a standard
interface, where the system-wide rc file isn't executed, and there is no
system admin exposure?
- Funny you should ask that. I think that would be positive, but it's
still being cogitated upon.
- Can mvmda be used with procmail?
- Sure, procmail can execute mvmda. However procmail might mask some
of the things that mvmda would like to see (e.g. environmental
information from the MTA). Also, the input when procmail pipes to
mvmda is not seekable, so mvmda has to use more disk access than it
might if the input were seekable.
We also hope that if you are already using procmail, you will
be able to migrate entirely to mvmda.
- How do I know if there are errors in my program?
- This depends on what has happened so far. mvmda uses the
"sieve" notion of "implicit keep." If your program has made it
far enough to have delivered the message somewhere successfully,
"implicit keep" will probably have been turned off. However, if
"implicit keep" is still set, it means that default delivery (to
your default mailbox) will still occur. In this event, mvmda will
put its error messages into the body of your mail message.
In addition, mvmda logs its messages to stderr. If being run
by qmail, the messages will end up in the system log files. If
being run by procmail, it depends on how you have told procmail to
log stderr.
If you have access to the mvmda program (e.g. if you
have a shell account), you can run the program with the "-c" option
to check the syntax of your script. (see the
man page.)
- mvmda's scripting language has facilities to check against various
DNS-based blocklists (DNSBLs). How does it know what IP address(es)
to check?
- Two ways. First: your script can always specify a specific IP address to
test (how it gets that IP address is up to your script).
Second, and more commonly: mvmda maintains a list of "responsible IP
addresses" for the current mail message. Immediately after mvmda opens
and scans the message, and before it executes your delivery script, it
looks for and invokes a specially named MFL function (a "hook"). That
function is responsible for scanning the headers of the message and
picking out the list of resposible IP addresses that should be used in
the DNSBL checks. Your system administrator should supply this hook
to match the sort of headers that are used in your mail system.
- Is this all the questions there are?
- Yes. Ask some better ones!