mvmf: mvmda FAQ

mvmf: mvmda FAQ

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!