<HTML
><HEAD
><TITLE
>Win32 Installation Notes</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Installation"
HREF="installation.html"><LINK
REL="PREVIOUS"
TITLE="Optional Additional Configuration"
HREF="extraconfig.html"><LINK
REL="NEXT"
TITLE="Mac OS X Installation Notes"
HREF="osx.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="extraconfig.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Installation</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="osx.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="win32">4.3. Win32 Installation Notes</H1
><P
>This section covers installation on Microsoft Windows. 
    Bugzilla has been made to work on Win32 platforms, but the Bugzilla team
    wish to emphasise that The easiest way to install Bugzilla on
    Intel-archiecture machines
    is to install some variant of GNU/Linux, then follow the UNIX
    installation instructions in this Guide. If you have any influence in the
    platform choice for running this system, please choose GNU/Linux instead
    of Microsoft Windows.</P
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/warning.gif"
HSPACE="5"
ALT="Warning"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>After that warning, here's the situation for 2.16
      and Windows. It doesn't work at all out of the box. 
      You are almost certainly better off getting
      the 2.17 version from CVS (after consultation with the Bugzilla Team to
      make sure you are pulling on a stable day) because we'll be doing a load
      of work to make the Win32 experience more pleasant than it is now.
      </P
></TD
></TR
></TABLE
></DIV
><P
>&#13;    If you still want to try this, to have any hope of getting it to work,
    you'll need to apply the 
    <A
HREF=""
TARGET="_top"
>mail patch</A
> from 
    <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=124174"
TARGET="_top"
>bug 124174</A
>.
    After that, you'll need to read the (outdated) installation 
    instructions below, some (probably a lot better) <A
HREF="http://bugzilla.mozilla.org/attachment.cgi?id=84430&action=view"
TARGET="_top"
>more
     recent ones</A
> kindly provided by Toms Baugis and Jean-Sebastien 
     Guay, and also check the 
     <A
HREF="http://www.bugzilla.org/releases/2.16/docs/win32.html"
TARGET="_top"
>Bugzilla 2.16 Win32 update page
     </A
>. If we get time,
     we'll write some better installation instructions for 2.16 and put
     them up there. But no promises.
    </P
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="wininstall">4.3.1. Win32 Installation: Step-by-step</H2
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>You should be familiar with, and cross-reference, the rest of
        the 
        <A
HREF="installation.html"
>Bugzilla Installation</A
>

        section while performing your Win32 installation.</P
><P
>Making Bugzilla work on Microsoft Windows is no picnic. Support
        for Win32 has improved dramatically in the last few releases, but, if
        you choose to proceed, you should be a 
        <EM
>very</EM
>

        skilled Windows Systems Administrator with strong troubleshooting
        abilities, a high tolerance for pain, and moderate perl skills.
        Bugzilla on NT requires hacking source code and implementing some
        advanced utilities. What follows is the recommended installation
        procedure for Win32; additional suggestions are provided in 
        <A
HREF="faq.html"
>Appendix A</A
>

        .</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="procedure"
><OL
TYPE="1"
><LI
><P
>Install 
          <A
HREF="http://www.apache.org/"
TARGET="_top"
>Apache Web Server</A
>

          for Windows, and copy the Bugzilla files somewhere Apache can serve
          them. Please follow all the instructions referenced in 
          <A
HREF="installation.html"
>Bugzilla Installation</A
>

          regarding your Apache configuration, particularly instructions
          regarding the 
          <SPAN
CLASS="QUOTE"
>"AddHandler"</SPAN
>

          parameter and 
          <SPAN
CLASS="QUOTE"
>"ExecCGI"</SPAN
>

          .</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>You may also use Internet Information Server or Personal
            Web Server for this purpose. However, setup is quite different.
            If ActivePerl doesn't seem to handle your file associations
            correctly (for .cgi and .pl files), please consult 
            <A
HREF="faq.html"
>Appendix A</A
>

            .</P
><P
>If you are going to use IIS, if on Windows NT you must be
            updated to at least Service Pack 4. Windows 2000 ships with a
            sufficient version of IIS.</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
>Install 
          <A
HREF="http://www.activestate.com/"
TARGET="_top"
>ActivePerl</A
>

          for Windows. Check 
          <A
HREF="http://aspn.activestate.com/ASPN/Downloads/ActivePerl/"
TARGET="_top"
>&#13;          http://aspn.activestate.com/ASPN/Downloads/ActivePerl</A
>

          for a current compiled binary.</P
><P
>Please also check the following links to fully understand the
          status of ActivePerl on Win32: 
          <A
HREF="http://language.perl.com/newdocs/pod/perlport.html"
TARGET="_top"
>&#13;          Perl Porting</A
>

          , and 
          <A
HREF="http://ftp.univie.ac.at/packages/perl/ports/nt/FAQ/perlwin32faq5.html"
TARGET="_top"
>&#13;          Perl on Win32 FAQ</A
>
          </P
></LI
><LI
><P
>Use ppm from your perl\bin directory to install the following
          packs: DBI, DBD-Mysql, TimeDate, Chart, Date-Calc, Date-Manip, GD,
          AppConfig, and Template. You may need to extract them from .zip
          format using Winzip or other unzip program first. Most of these
          additional ppm modules can be downloaded from ActiveState, but
          AppConfig and Template should be obtained from OpenInteract using 
          <A
HREF="http://openinteract.sourceforge.net/"
TARGET="_top"
>the
          instructions on the Template Toolkit web site</A
>

          .</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>You can find a list of modules at 
            <A
HREF="http://www.activestate.com/PPMPackages/zips/5xx-builds-only"
TARGET="_top"
>&#13;            http://www.activestate.com/PPMPackages/zips/5xx-builds-only/</A
>

            or 
            <A
HREF="http://www.activestate.com/PPMPackages/5.6plus"
TARGET="_top"
>&#13;            http://www.activestate.com/PPMPackages/5.6plus</A
>
            </P
></TD
></TR
></TABLE
></DIV
><P
>The syntax for ppm is: 
          <TT
CLASS="computeroutput"
>&#13;            <TT
CLASS="prompt"
>C:&#62;</TT
>

            <B
CLASS="command"
>ppm &#60;modulename&#62;</B
>
          </TT
>
          </P
><DIV
CLASS="example"
><A
NAME="AEN989"><P
><B
>Example 4-1. Installing ActivePerl ppd Modules on Microsoft
            Windows</B
></P
><P
>&#13;              <TT
CLASS="prompt"
>C:&#62;</TT
>

              <B
CLASS="command"
>ppm 
              <TT
CLASS="option"
>DBD-Mysql</TT
>
              </B
>
            </P
><P
>Watch your capitalization!</P
></DIV
><P
>ActiveState's 5.6Plus directory also contains an AppConfig
          ppm, so you might see the following error when trying to install
          the version at OpenInteract:</P
><P
>&#13;            <TT
CLASS="computeroutput"
>Error installing package 'AppConfig': Read a PPD
            for 'AppConfig', but it is not intended for this build of Perl
            (MSWin32-x86-multi-thread)</TT
>
          </P
><P
>If so, download both 
          <A
HREF="http://openinteract.sourceforge.net/ppmpackages/AppConfig.tar.gz"
TARGET="_top"
>&#13;          the tarball</A
>

          and 
          <A
HREF="http://openinteract.sourceforge.net/ppmpackages/AppConfig.ppd"
TARGET="_top"
>&#13;          the ppd</A
>

          directly from OpenInteract, then run ppm from within the same
          directory to which you downloaded those files and install the
          package by referencing the ppd file explicitly via in the install
          command, f.e.: 
          <DIV
CLASS="example"
><A
NAME="AEN1002"><P
><B
>Example 4-2. Installing OpenInteract ppd Modules manually on Microsoft
            Windows</B
></P
><P
>&#13;              <TT
CLASS="computeroutput"
>&#13;                <B
CLASS="command"
>install 
                <TT
CLASS="filename"
>C:\AppConfig.ppd</TT
>
                </B
>
              </TT
>
            </P
></DIV
>
          </P
></LI
><LI
><P
>Install MySQL for NT. 
          <DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>You can download MySQL for Windows NT from 
            <A
HREF="http://www.mysql.com/"
TARGET="_top"
>MySQL.com</A
>

            . Some find it helpful to use the WinMySqlAdmin utility, included
            with the download, to set up the database.</P
></TD
></TR
></TABLE
></DIV
>
          </P
></LI
><LI
><P
>Setup MySQL</P
><OL
CLASS="SUBSTEPS"
TYPE="a"
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>C:&#62;</TT
>

                  <B
CLASS="command"
>C:\mysql\bin\mysql -u root mysql</B
>
                </TT
>
              </P
></LI
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>mysql&#62;</TT
>

                  <B
CLASS="command"
>DELETE FROM user WHERE Host='localhost' AND
                  User='';</B
>
                </TT
>
              </P
></LI
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>mysql&#62;</TT
>

                  <B
CLASS="command"
>UPDATE user SET Password=PASSWORD ('new_password')
                  WHERE user='root';</B
>
                </TT
>
              </P
><P
>&#13;              <SPAN
CLASS="QUOTE"
>"new_password"</SPAN
>

              , above, indicates whatever password you wish to use for your 
              <SPAN
CLASS="QUOTE"
>"root"</SPAN
>

              user.</P
></LI
><LI
><A
NAME="ntbugs-password"
></A
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>mysql&#62;</TT
>

                  <B
CLASS="command"
>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX,
                  ALTER, CREATE, DROP, REFERENCES ON bugs.* to bugs@localhost
                  IDENTIFIED BY 'bugs_password';</B
>
                </TT
>
              </P
><P
>&#13;              <SPAN
CLASS="QUOTE"
>"bugs_password"</SPAN
>

              , above, indicates whatever password you wish to use for your 
              <SPAN
CLASS="QUOTE"
>"bugs"</SPAN
>

              user.</P
></LI
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>mysql&#62;</TT
>

                  <B
CLASS="command"
>FLUSH PRIVILEGES;</B
>
                </TT
>
              </P
></LI
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>mysql&#62;</TT
>

                  <B
CLASS="command"
>create database bugs;</B
>
                </TT
>
              </P
></LI
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>mysql&#62;</TT
>

                  <B
CLASS="command"
>exit;</B
>
                </TT
>
              </P
></LI
><LI
><P
>&#13;                <TT
CLASS="computeroutput"
>&#13;                  <TT
CLASS="prompt"
>C:&#62;</TT
>

                  <B
CLASS="command"
>C:\mysql\bin\mysqladmin -u root -p
                  reload</B
>
                </TT
>
              </P
></LI
></OL
></LI
><LI
><P
>Edit 
          <TT
CLASS="filename"
>checksetup.pl</TT
>

          in your Bugzilla directory. Change this line:</P
><P
>&#13;            <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>my $webservergid =
            getgrnam($my_webservergroup);</PRE
></FONT
></TD
></TR
></TABLE
>
          </P
><P
>to</P
><P
>&#13;          <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>my $webservergid =
          $my_webservergroup;</PRE
></FONT
></TD
></TR
></TABLE
>

          or the name of the group you wish to own the files explicitly: 
          <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>my $webservergid =
          'Administrators'</PRE
></FONT
></TD
></TR
></TABLE
>
          </P
></LI
><LI
><P
>Run 
          <TT
CLASS="filename"
>checksetup.pl</TT
>

          from the Bugzilla directory.</P
></LI
><LI
><P
>Edit 
          <TT
CLASS="filename"
>localconfig</TT
>

          to suit your requirements. Set 
          <TT
CLASS="varname"
>$db_pass</TT
>

          to your 
          <SPAN
CLASS="QUOTE"
>"bugs_password"</SPAN
>

          from 
          <A
HREF="win32.html#ntbugs-password"
>step 5.d</A
>

          , and 
          <TT
CLASS="varname"
>$webservergroup</TT
>

          to 
          <SPAN
CLASS="QUOTE"
>"8"</SPAN
>

          .</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Not sure on the 
            <SPAN
CLASS="QUOTE"
>"8"</SPAN
>

            for 
            <TT
CLASS="varname"
>$webservergroup</TT
>

            above. If it's wrong, please send corrections.</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
>Edit 
          <TT
CLASS="filename"
>defparams.pl</TT
>

          to suit your requirements. Particularly, set 
          <TT
CLASS="varname"
>DefParam("maintainer")</TT
>

          and 
          <TT
CLASS="varname"
>DefParam("urlbase") to match your install.</TT
>
          </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>This is yet another step I'm not sure of, since the
            maintainer of this documentation does not maintain Bugzilla on
            NT. If you can confirm or deny that this step is required, please
            let me know.</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>There are several alternatives to Sendmail that will work
            on Win32. The one mentioned here is a 
            <EM
>suggestion</EM
>

            , not a requirement. Some other mail packages that can work
            include 
            <A
HREF="http://www.blat.net/"
TARGET="_top"
>BLAT</A
>

            , 
            <A
HREF="http://www.geocel.com/windmail/"
TARGET="_top"
>Windmail</A
>

            , 
            <A
HREF="http://www.dynamicstate.com/"
TARGET="_top"
>Mercury
            Sendmail</A
>

            , and the CPAN Net::SMTP Perl module (available in .ppm). Every
            option requires some hacking of the Perl scripts for Bugzilla to
            make it work. The option here simply requires the least.</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="procedure"
><OL
TYPE="1"
><LI
><P
>Download NTsendmail, available from
              <A
HREF="http://www.ntsendmail.com/"
TARGET="_top"
>&#13;              www.ntsendmail.com</A
>

              . You must have a "real" mail server which allows you to relay
              off it in your $ENV{"NTsendmail"} (which you should probably
              place in globals.pl)</P
></LI
><LI
><P
>Put ntsendmail.pm into your .\perl\lib directory.</P
></LI
><LI
><P
>Add to globals.pl:</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
># these settings configure the NTsendmail
              process use NTsendmail;
              $ENV{"NTsendmail"}="your.smtpserver.box";
              $ENV{"NTsendmail_debug"}=1;
              $ENV{"NTsendmail_max_tries"}=5;</PRE
></FONT
></TD
></TR
></TABLE
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Some mention to also edit 
                <TT
CLASS="varname"
>$db_pass</TT
>

                in 
                <TT
CLASS="filename"
>globals.pl</TT
>

                to be your 
                <SPAN
CLASS="QUOTE"
>"bugs_password"</SPAN
>

                . Although this may get you around some problem
                authenticating to your database, since globals.pl is not
                normally restricted by 
                <TT
CLASS="filename"
>.htaccess</TT
>

                , your database password is exposed to whoever uses your web
                server.</P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><P
>Find and comment out all occurences of 
              <SPAN
CLASS="QUOTE"
>"
                <B
CLASS="command"
>open(SENDMAIL</B
>
              "</SPAN
>

              in your Bugzilla directory. Then replace them with: 
              <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
># new sendmail functionality my $mail=new
              NTsendmail; my $from="bugzilla\@your.machine.name.tld"; my
              $to=$login; my $subject=$urlbase;
              $mail-&#62;send($from,$to,$subject,$msg);</PRE
></FONT
></TD
></TR
></TABLE
>
              </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Some have found success using the commercial product, 
                <SPAN
CLASS="productname"
>Windmail</SPAN
>

                . You could try replacing your sendmail calls with: 
                <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>open SENDMAIL,
                "|\"C:/General/Web/tools/Windmail 4.0 Beta/windmail\" -t &#62;
                mail.log";</PRE
></FONT
></TD
></TR
></TABLE
>

                or something to that effect.</P
></TD
></TR
></TABLE
></DIV
></LI
></OL
></DIV
></LI
><LI
><P
>Change all references in all files from 
          <TT
CLASS="filename"
>processmail</TT
>

          to 
          <TT
CLASS="filename"
>processmail.pl</TT
>

          , and rename 
          <TT
CLASS="filename"
>processmail</TT
>

          to 
          <TT
CLASS="filename"
>processmail.pl</TT
>

          .</P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Many think this may be a change we want to make for
            main-tree Bugzilla. It's painless for the UNIX folks, and will
            make the Win32 people happier.</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Some people have suggested using the Net::SMTP Perl module
            instead of NTsendmail or the other options listed here. You can
            change processmail.pl to make this work. 
            <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;

my $smtp = Net::SMTP-&#62;new('&#60;Name of your SMTP server&#62;');   #connect to SMTP server
$smtp-&#62;mail('&#60;your name&#62;@&#60;you smpt server&#62;');# use the sender's adress here
$smtp-&#62;to($tolist); # recipient's address
$smtp-&#62;data();  # Start the mail
$smtp-&#62;datasend($msg);
$smtp-&#62;dataend();   # Finish sending the mail
$smtp-&#62;quit;    # Close the SMTP connection
$logstr = "$logstr; mail sent to $tolist $cclist";
}


            </PRE
></FONT
></TD
></TR
></TABLE
>

            here is a test mail program for Net::SMTP: 
            <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;

use Net::SMTP;
 my $smtp = Net::SMTP-&#62;new('&#60;Name of your SMTP server', Timeout =&#62; 30, Debug
=&#62; 1, ); # connect to SMTP server
                 $smtp-&#62;auth;
                $smtp-&#62;mail('you@yourcompany.com');# use the sender's adress
here
                $smtp-&#62;to('someotherAddress@someotherdomain.com'); #
recipient's address
                $smtp-&#62;data();  # Start the mail
                $smtp-&#62;datasend('test');
                $smtp-&#62;dataend();   # Finish sending the mail
                $smtp-&#62;quit;    # Close the SMTP connection
exit;


            </PRE
></FONT
></TD
></TR
></TABLE
>
            </P
></TD
></TR
></TABLE
></DIV
></LI
><LI
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>This step is optional if you are using IIS or another web
            server which only decides on an interpreter based upon the file
            extension (.pl), rather than the 
            <SPAN
CLASS="QUOTE"
>"shebang"</SPAN
>

            line (#/usr/bonsaitools/bin/perl)</P
></TD
></TR
></TABLE
></DIV
><P
>Modify the path to perl on the first line (#!) of all files
          to point to your Perl installation, and add 
          <SPAN
CLASS="QUOTE"
>"perl"</SPAN
>

          to the beginning of all Perl system calls that use a perl script as
          an argument. This may take you a while. There is a 
          <SPAN
CLASS="QUOTE"
>"setperl.csh"</SPAN
>

          utility to speed part of this procedure, available in the 
          <A
HREF="patches.html"
>Useful Patches and Utilities for Bugzilla</A
>

          section of The Bugzilla Guide. However, it requires the Cygwin
          GNU-compatible environment for Win32 be set up in order to work.
          See 
          <A
HREF="http://www.cygwin.com/"
TARGET="_top"
>http://www.cygwin.com/</A
>

          for details on obtaining Cygwin.</P
></LI
><LI
><P
>Modify the invocation of all system() calls in all perl
          scripts in your Bugzilla directory. You should specify the full
          path to perl for each system() call. For instance, change this line
          in processmail: 
          <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13; 
system ("./processmail",@ARGLIST); 
        &#60;/programlisting&#62; to
        &#60;programlisting&#62; 
system ("C:\\perl\\bin\\perl", "processmail", @ARGLIST);

          </PRE
></FONT
></TD
></TR
></TABLE
>
          </P
></LI
><LI
><P
>Add 
          <TT
CLASS="function"
>binmode()</TT
>

          calls so attachments will work (
          <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
TARGET="_top"
>bug
          62000</A
>

          ).</P
><P
>Because Microsoft Windows based systems handle binary files
          different than Unix based systems, you need to add the following
          lines to 
          <TT
CLASS="filename"
>createattachment.cgi</TT
>

          and 
          <TT
CLASS="filename"
>showattachment.cgi</TT
>

          before the 
          <TT
CLASS="function"
>require 'CGI.pl';</TT
>

          line.</P
><P
>&#13;            <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;
binmode(STDIN);
binmode(STDOUT);

            </PRE
></FONT
></TD
></TR
></TABLE
>
          </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>According to 
            <A
HREF="http://bugzilla.mozilla.org/show_bug.cgi?id=62000"
TARGET="_top"
>&#13;            bug 62000</A
>

            , the perl documentation says that you should always use 
            <TT
CLASS="function"
>binmode()</TT
>

            when dealing with binary files, but never when dealing with text
            files. That seems to suggest that rather than arbitrarily putting
            
            <TT
CLASS="function"
>binmode()</TT
>

            at the beginning of the attachment files, there should be logic
            to determine if 
            <TT
CLASS="function"
>binmode()</TT
>

            is needed or not.</P
></TD
></TR
></TABLE
></DIV
></LI
></OL
></DIV
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>If you are using IIS or Personal Web Server, you must add cgi
        relationships to Properties -&#62; Home directory (tab) -&#62;
        Application Settings (section) -&#62; Configuration (button), such
        as:</P
><P
>&#13;        <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>.cgi to: &#60;perl install directory&#62;\perl.exe %s
        %s .pl to: &#60;perl install directory&#62;\perl.exe %s %s
        GET,HEAD,POST</PRE
></FONT
></TD
></TR
></TABLE
>

        Change the path to Perl to match your install, of course.</P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="addlwintips">4.3.2. Additional Windows Tips</H2
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>From Andrew Pearson: 
        <A
NAME="AEN1172"><BLOCKQUOTE
CLASS="BLOCKQUOTE"
><P
>You can make Bugzilla work with Personal Web Server for
          Windows 98 and higher, as well as for IIS 4.0. Microsoft has
          information available at 
          <A
HREF=" http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP"
TARGET="_top"
>&#13;          http://support.microsoft.com/support/kb/articles/Q231/9/98.ASP</A
>
          </P
><P
>Basically you need to add two String Keys in the registry at
          the following location:</P
><P
>&#13;            <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>&#13;            HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap</PRE
></FONT
></TD
></TR
></TABLE
>
          </P
><P
>The keys should be called ".pl" and ".cgi", and both should
          have a value something like: 
          <B
CLASS="command"
>c:/perl/bin/perl.exe "%s" "%s"</B
>
          </P
><P
>The KB article only talks about .pl, but it goes into more
          detail and provides a perl test script.</P
></BLOCKQUOTE
>
        </P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="tip"
><P
></P
><TABLE
CLASS="tip"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>If attempting to run Bugzilla 2.12 or older, you will need to
        remove encrypt() calls from the Perl source. This is 
        <EM
>not necessary</EM
>

        for Bugzilla 2.13 and later, which includes the current release,
        Bugzilla &#38;bz-ver;. 
        <DIV
CLASS="example"
><A
NAME="AEN1184"><P
><B
>Example 4-3. Removing encrypt() for Windows NT Bugzilla version 2.12 or
          earlier</B
></P
><P
>Replace this: 
          <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>SendSQL("SELECT encrypt(" . SqlQuote($enteredpwd) .
          ", " . SQLQuote(substr($realcryptpwd, 0, 2)) . ")"); my
          $enteredcryptpwd = FetchOneColumn();</PRE
></FONT
></TD
></TR
></TABLE
>

          with this: 
          <TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="programlisting"
>my $enteredcryptpwd = $enteredpwd</PRE
></FONT
></TD
></TR
></TABLE
>

          in cgi.pl.</P
></DIV
>
        </P
></TD
></TR
></TABLE
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="extraconfig.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="osx.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Optional Additional Configuration</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="installation.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Mac OS X Installation Notes</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>