NAME
sendd - Flush glist's Mailinglist Spool
SYNOPSIS
Run from crontab:
00-59 * * * * /path/to/sendd -s
Or in daemon mode:
/path/to/sendd -D -t time_to_sleep
COMMAND LINE SWITCHES AND OPTIONS
Usage: sendd [-v] [-n] {-D [-t time_to_sleep]|-s}
- -D
-
Run the program in daemon mode.
- -t
-
Time (in seconds) which we'll be sleeping between each run. (only in deamon mode)
- -s
-
Run once and exit.
- -v
-
Give verbose error and info messages in logging
- -n
-
Debug mode. Don't really send mail and do not delete the queue file.
DESCRIPTION
Sendd is the program that flushes glist's mailinglist spool.
It checks for files in the PREFIX/spool/outgoing directory.
For each file it finds it will:
1. Move the file to the PREFIX/spool/send directory.
2. Parse the file and generate the headers
3. Connect to the DB in the X-DB_Server and X-Database headers
and get the e-mail addresses from the push list id X-Push_list_id
or get the files from the mailinglist file (if the mailinglist type is file)
4. Generate Bcc/Resent-bcc information in correct format from the list of
approved e-mail addresses.
5. Send the mail if it finds all required headers
6. If the mail was send successfully; delete the message file.
If the message couldn't be parsed it will be moved to the defer directory,
which is PREFIX/spool/deferred.
CONFIGURATION
Configuration is done in the script it self.
Thogh this is preferred to be changed in the Makefile,
this can be done in the script as well.
In the first lines of sendd you can configure the following variables:
- PREFIX
-
Sendd's prefix path.
- SENDMAIL
-
The full path to the sendmail program, with options. (usually sendmail -t)
- USE_SQL
-
Set to db2 or pgsql. Defines if the DBI and DBD::Pg/DBD::DB2 modules should be used, and postgresql/db2 support is implemented.
FILES
- PREFIX/etc/glist.passwd
-
The database of passwords. This file has the following format: servername:dbname:user:pass NOTE: This must only be readable by the uid sendd runs as. Please also note that it's generally a bad idea to run sendd as root.
- Message files in PREFIX/spool/outgoing
-
Each message file should be like this: Header part <empty line> Body Part The following headers are required: From - The sender of the message To - The recipient of the message Subject - The subject of the message The following headers are optional depending if the list is sql or file based: X-DB_Server - The database server we should connect to X-Database - The database we should use on the server X-Push_list_id - The id of the member list to use X-File - The file containing the recipients
REQUIREMENTS
- Perl 5
-
Maybe even Perl 5.6?
- POSIX
-
Should be in the standard perl distribution.
- Getopt:Std
-
Should be in the standard perl distribution.
- File::Copy
-
Should be in the standard perl distribution.
- DBI
-
The CPAN module can install this for you: # perl -MCPAN -e shell cpan> install DBI
- DBD::Pg
-
The CPAN module can install this for you: # export POSTGRES_INCLUDE=/path/to/postgres/include # export POSTGRES_LIB=/path/to/postgres/lib # perl -MCPAN -e shell cpan> install DBD::Pg
- Postfix / Sendmail
-
http://www.postfix.org http://www.sendmail.org
VERSION
This is version 1.00, derived from listspoold 1.00
TODO
* If somehow (despite the locking check) the daemon manages to run twice,
the message can in some rare conditions be sent twice.
This can be fixed by adding another queue where the message will be moved
as soon as it is found by the daemon. Actions after this will be done
with the file in the new directory.
This is done in version listspoold 1.00
BUGS
None known as of this date :)
HISTORY
This is an glist implementation of listspool version 1.0
AUTHOR
Ask Solem Hoel <ask@unixmonks.net>, http://www.unixmonks.net
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 2:
Unknown directive: =comment
- Around line 304:
=cut found outside a pod block. Skipping to next block.