<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Courier Mail Server - latest releases</title>
  <!-- $Id: download.php,v 1.31 2005/12/25 22:07:00 mrsam Exp $ -->
  <!-- Copyright 2000-2004 Double Precision, Inc.  See COPYING for -->
  <!-- distribution information. -->
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <link rel="icon" href="icon.gif" type="image/gif" />
  <link href="style.css" rel="stylesheet" type="text/css" />
  <script type="text/javascript" language="Javascript" src="frame.js">
  </script>
  <style type="text/css">
  h2 a { color: #000000 }
  h2 a:visited { color: #000000 }</style>
</head>

<body>
<script language="php">

        $dir="/home/groups/c/co/courier";
        $betaftpdir="/home/groups/c/co/courier/htdocs/beta";
        $betaftpurl="http://www.courier-mta.org/beta";

        $filename="$dir/download.lst";

        $old_err=error_reporting(60);
        $fp=fopen($filename, "r");
        if (! $fp)
        {
                $filename="/var/www/download.lst";
                $fp=fopen($filename, "r");
        }
        error_reporting($old_err);
        if (! $fp)
        {
                echo "Unable to read configuration file.\n";
                exit();
        }
        while (!feof($fp))
        {
                $line=fgets($fp, 4096);
                if (strlen($line) == 0)
                {
                        continue;
                }

                list($package, $version_s, $date_s, $filename_s, $size_s)
                        =split( "[ \t\n]", $line);

                $Version[$package]=$version_s;
                $Date[$package]=$date_s;
                $Filename[$package]=$filename_s;
                $Size[$package]=$size_s;
        }
        fclose($fp);

function http_url ($date) {

        $today=time;
        $filedate=strtotime($date);

        return "http://prdownloads.sourceforge.net/courier/";
#       $url="http://ftp1.sourceforge.net/courier/";
#
#        if ($today >= $filedate + 3 * 24 * 60 * 60)
#        {
#                $url="http://download.sourceforge.net/courier/";
#        }
#        return ($url);
}

function ftp_url ($date) {

        $today=time;
        $filedate=strtotime($date);

        $url="ftp://ftp1.sourceforge.net/pub/sourceforge/courier/";

        if ($today >= $filedate + 3 * 24 * 60 * 60)
        {
                $url="ftp://download.sourceforge.net/pub/sourceforge/courier/";
        }
        return ($url);
}
        
function download_block ($version, $date, $filename, $size, $sig,
                         $torrent) {

        $httpurl= http_url($date);
        $ftpurl= ftp_url($date);
        
        # Amaya flotsam.

        $ntr="</"."tr>";
        $ntd="</"."td>";
        $nth="</"."th>";
        $ncode="</"."code>";
        $na="</"."a>";
        $ntable="</"."table>";
        $nsuper="</"."super>";

        echo "<table border=0 cellpadding=4>";
        echo "<tr><th align=right>Version:$nth";
        echo "<td>$version ($date) $ntd $ntr\n";

        echo "<tr><th align=right>Filename:$nth";
        echo "<td><code>$filename$ncode ($size)$ntd $ntr\n";

        echo "<tr><th align=right>Download:$nth";

        echo "<td><a href='$httpurl$filename'>HTTP$na";

        if ($sig)
        {
                echo " (<a href='$httpurl$filename.sig'>signature$na)";
        }

        if ($torrent != "")
          {
            echo ", <a href='http://torrents.courier-mta.org/$torrent'>torrent$na<super>*$nsuper";
          }
#        echo " or <a href='$ftpurl$filename'>FTP$na";
        echo " $ntd $ntr $ntable\n";
        echo "\n";

}

function download_version($package, $sig, $torrent) {

global $Version, $Date, $Filename, $Size;

 download_block($Version[$package],
                $Date[$package],
                $Filename[$package],
                $Size[$package], $sig,
                $torrent ? $package . "/$package-" . $Version[$package]
                . ".torrent":"");
}

function download_beta($subdir, $package, $changelog, $torrent) {

global $dir, $betaftpdir, $betaftpurl;

        $ntr="</"."tr>";
        $ntd="</"."td>";
        $nth="</"."th>";
        $ncode="</"."code>";
        $na="</"."a>";
        $ntable="</"."table>";
        $nfont="</"."font>";

        $old_err=error_reporting(60);
        $fp=fopen("$dir/$package", "r");
        error_reporting($old_err);

        if ( ! $fp )
        {
                return;
        }

        $line=fgets($fp, 40);

        fclose($fp);

        list($filename)=split("[ \t\n]", $line);

        list($cvstag)=split("\\.tar\.gz$", $filename);
        $cvstag=preg_replace("/-[^-]*$/", "", $cvstag);

        $cvstag="$cvstag-latest";

        $stat= stat("$betaftpdir/$subdir/$filename");

        $bytes=$stat[7];

        $bytes= floor ( ($bytes + 512) / 1024);

        if ($bytes < 1024)
        {
                $bytes = $bytes . "Kb";
        }
        else
        {
                $bytes= round ($bytes / 1024, 1) . "Mb";
        }

        $date
                =strftime("%d-%b-%Y", $stat[9]);

        echo "<table bgcolor='#000000' cellpadding=1 border=0><tr><td>\n";
        echo "<table bgcolor='#ffffff' cellpadding=16 border=0><tr><td>\n";
        echo "<font color='#D00000'>NEW: Download the latest development snapshot ($date):$nfont<br>\n";

        echo "<table border=0 cellpadding=4>";

        echo "<tr><th align=right>Filename:$nth";
        echo "<td colspan=2><code>$filename$ncode ($bytes)$ntd $ntr\n";

        echo "<tr><th align=right>Download:$nth";

        $ftpurl= $betaftpurl . "/" . $subdir . "/" . $filename;

        echo "<td><a href='$ftpurl'><code>$ftpurl$ncode$na$ntd<td>";

        echo "(<a href='$ftpurl.sig'>signature$na)";

        if ($torrent != "")
	{
		$torrentfile=preg_replace("/\.tar\.bz2/",".torrent", $filename);
 
		echo ", <a href='http://torrents.courier-mta.org/$subdir-dev/$torrentfile'>torrent$na<super>*$nsuper";
	}

	echo "$ntd $ntr\n";

        if ($changelog != "")
        {
                echo "<tr><th align=right> $nth<td colspan=2><font size='-2'>(<a href='$changelog$cvstag' target='_new'>changelog$na";
                echo ")$nfont $ntd $ntr";
        }

        echo "$ntable\n";

        echo "$ntd $ntr $ntable $ntd $ntr\n";

        echo "$ntable\n";
}</script>

<h1>Courier Mail Server - latest releases</h1>
<hr />

<p><a href="/KEYS.bin">Distribution keys</a></p>

<h2><a name="courier">Package: Courier</a></h2>

<blockquote>
  <script language="php">

download_version("courier", 1, 1);

download_beta("courier", "courier.beta", "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/courier/courier/courier/ChangeLog?content-type=text/plain&rev=", 1);

  </script>
</blockquote>

<p>This package includes the entire source code for the <a
href="http://www.courier-mta.org">Courier mail server</a> - the mail server,
IMAP server, webmail server, and the maildrop mail filter. You do not need to
install those individual packages if you download this package.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="authlib">Package: Courier authentication library</a></h2>

<blockquote>
  <script language="php">

download_version("courier-authlib", 1, 1);

download_beta("courier-authlib", "courier-authlib.beta", "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/courier/libs/authlib/ChangeLog?content-type=text/plain&rev=", "");

  </script>
</blockquote>

<p>The Courier Authentication Library is a generic authentication API that
encapsulates the process of validating account passwords.  In addition to
reading the traditional account passwords from <code>/etc/passwd</code>, the
account information can alternatively be obtained from an LDAP directory; a
MySQL or a PostgreSQL database; or a GDBM or a DB file. The Courier
authentication library must be installed before building any Courier packages
that needs direct access to mailboxes (in other words, all packages except
for courier-sox and courier-analog).</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="analog">Package: Courier-analog</a></h2>

<blockquote>
  <script language="php">

download_version("courier-analog", 1, 0);
download_beta("analog", "courier-analog.beta", "http://cvs.sourceforge.net/viewcvs.py/*checkout*/courier/courier/analog/ChangeLog?content-type=text/plain&rev=", "");

  </script>
</blockquote>

<p>This is an optional package, the Courier log analyzer. Courier-analog
generates log summaries for incoming and outgoing SMTP connections, and IMAP
and POP3 activity. courier-analog can generate output in text or HTML
format.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="imap">Package: Courier-IMAP</a></h2>

<blockquote>
  <script language="php">

download_version("courier-imap", 1, 1);
download_beta("imap", "courier-imap.beta", "http://cvs.sourceforge.net/viewcvs.py/*checkout*/courier/courier/imap/imap/ChangeLog?content-type=text/plain&rev=", "");

  </script>
</blockquote>

<p>This package contains the standalone Courier IMAP server, which is used to
provide IMAP access to local mailboxes. Courier-IMAP is provided here as a
separate package that can be used with other mail servers as well.</p>

<p><a href="http://www.courier-mta.org/imap/">More information about the
Courier-IMAP server</a>.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="sqwebmail">Package: SqWebMail</a></h2>

<blockquote>
  <script language="php">

download_version("sqwebmail", 1, 1);
download_beta("sqwebmail", "sqwebmail.beta", "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/courier/courier/webmail/ChangeLog?content-type=text/plain&rev=", "");
  </script>
</blockquote>

<p>This package contains the SqWebMail webmail CGI. This CGI is used by the
Courier mail server to provide webmail access to local mailboxes. SqWebMail
is provided here as a separate package that can be used with other mail
servers as well.</p>

<p><a href="http://www.courier-mta.org/sqwebmail/">More information about
SqWebMail</a>.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="maildrop">Package: maildrop</a></h2>

<blockquote>
  <script language="php">

download_version("maildrop", 1, 1);
download_beta("maildrop", "maildrop.beta", "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/courier/courier/maildrop/ChangeLog?content-type=text/plain&rev=", "");
  </script>
</blockquote>

<p>This package contains the maildrop delivery agent/mail filter. This mail
filter module is included in the Courier mail server, which uses it to filter
incoming mail. Maildrop is provided here as a separate package that can be
used with other mail servers as well.</p>

<p><a href="http://www.flounder.net/~mrsam/maildrop/">More information about
maildrop</a>.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="sox">Package: courier-sox</a></h2>

<blockquote>
  <script language="php">

download_version("courier-sox", 1, 0);
download_beta("sox", "sox.beta", "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/courier/courier/sox/ChangeLog?content-type=text/plain&rev=", "");
  </script>
</blockquote>

<p>This package contains the Courier Socks 5 Proxy client library, which is a
package used by the forthcoming version of Courier to send outgoing mail
through a Socks 5 proxy. You will need to install this package before
building Courier in order to use a Socks proxy to send outgoing mail.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="cone">Package: Cone</a></h2>

<blockquote>
  <script language="php">

download_version("cone", 1, 0);
download_beta("cone", "cone.beta", "http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/courier/cone/ChangeLog?content-type=text/plain&rev=", "");
  </script>
</blockquote>

<p>This package contains <span
style="font-family: serif; font-style: italic">Cone</span>, a text-based mail
client based, in part, on Courier libraries.</p>

<p><a href="http://www.courier-mta.org/cone/index.html">More information
about <span
style="font-family: serif; font-style: italic">Cone</span></a>.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />

<h2><a name="sysconftool">Package: sysconftool</a></h2>

<blockquote>
  <script language="php">

download_version("sysconftool", 1, 0);
  </script>
</blockquote>

<p>The sysconftool utility contains an additional autoconf macro used by
Courier to install configuration files. You only need to install sysconftool
if you intend to check out Courier from CVS. You do not need to install
sysconftool in order to compile and install tarballed releases.</p>

<p><a href="http://www.courier-mta.org/sysconftool/">More information about
sysconftool</a>.</p>

<p><font size="-1">(<a
href="http://sourceforge.net/project/showfiles.php?group_id=5404">Download
older/other releases</a>)</font></p>
<hr />
<small><super>*</super>No, Sourceforge is not really running out of
bandwidth, and torrents are really not needed. I am simply promoting the
usage of BitTorrent as an efficient content publishing tool, as well as
debugging my <a href="http://eztorrent.courier-mta.com"
target="_new">EZTorrent</a> tool.</small></body>
</html>
