
The Bugzilla Mail interface
===========================

(UPDATE 03/14/00 to better reflect reality by SML)

The Bugzilla Mail interface allows to submit bugs to Bugzilla by email.

The Mail Interface Contribution consists of three files:
README.Mailif - this readme.
bug_email.pl  - the script
bugmail_help.html - a user help html site

Installation:

Next is to add a user who receives the bugmails, e. g. bugmail. Create a 
mail account and a home directory for the user. 

The mailinterface script bug_email.pl needs to get the mail through stdin.
I use procmail for that, with the following line in the .procmailrc:

BUGZILLA_HOME=/usr/local/httpd/htdocs/bugzilla
:0 c
|(cd $BUGZILLA_HOME/contrib; ./bug_email.pl)

This defines the Bugzilla directory as the variable BUGZILLA_HOME and passes
all incoming mail to the script after cd'ing into the bugzilla home.

In some cases, it is necessary to alter the headers of incoming email.  The 
additional line to procmail :

:0 fhw
| formail -I "From " -a "From "

fixes many problems.

See bugzilla.procmailrc for a sample procmailrc that works for me (SML) and
also deals with bugzilla_email_append.pl

Customation:

There are some values inside the script which need to be customized for your
needs:

1. In sub-routine Reply (search 'sub Reply':
there is the line
    print MAIL "From: Bugzilla Mailinterface<yourmail\@here.com>\n";
                                            ^^^^^^^^^^^^^^^^^^^^
Fill in your correct mail here. That will make it easy for people to reply
to the mail.

2. check, if your sendmail resides in /usr/sbin/sendmail, change the path if neccessary.
Search the script after 'default' - you find some default-Settings for bug
reports, which are used, if the sender did not send a field for it. The defaults
should be checked and changed.

Thats hopefully all, we will come up with any configuration file or something.


If your mail works, your script will insert mails from now on.

The mailinterface supports two commandline switches:

There are two command line switches :

-t: Testmode
    The mailinterface does not really insert the bug into the database, but
    writes some debug output to stdout and writes the mail into the file
    bug_email_test.log in the data-dir.

-r: restricted mode
    All lines before the first line with a keyword character are skipped.
    In not restricted, default mode, these lines are added to the long 
    description of the bug.


02/2000 - Klaas Freitag, SuSE GmbH <freitag@suse.de>
03/2000 - Seth M. Landsman <seth@cs.brandeis.edu>
 bug_email.pl now lives out of bugzilla/contrib
 added line about formail
