<perl>
###########################################
########## Variablen definition ###########
###########################################
$link="baseportal.pl?htx=$htx";                # bleibt so
$an_name="blabla";                    # Was bei "an" halt so steht bei einer Email
$von_name="blabla";                       # Absendename
$von_email="info\@meinedomain.de";           # Absendeadresse (sollte gültig sein)
$header="Neues von mir Abensberg\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\n\n"; # Steht über der Message
$footer="++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nWenn Sie diesen Newsletter nicht mehr erhalten wollen, klicken Sie bitte auf diesen Link:\nhttp://www.meinedomain.de/cgi-bin/baseportal.pl?htx=/test/archiv&cmd=no&addi=AAABBB.\nIhr Eintrag wird dann gelöscht.    # Link zum "unsubscribe" unten in der Mail - AAABBB - muß unbedingt stehen bleiben
{
       unless ($wcheck)
       {
              out <<EOF;
              <h1>Bitte Rubrik für News auswählen</h1>
EOF
              &Form_Rubrik;
       }else
       {
       out "<p><a href=$link>Start</a> ";
       }
       if($wcheck==2)
       {
            $emsg.="Bitte geben Sie einen Betreff ein!<br> " if $betreff eq "";
            $emsg.="Bitte geben Sie einen Newstext ein!<br>" if $message eq "";
            $emsg.="Bitte geben Sie eine Absendeadresse ein!<br> " if $von_mail eq "";
            out <<EOF;
            <p><b>von:</b> $von <b>an:</b> $an<br>
            <b>Betreff:</b> $betreff<br>
            <b>Nachricht</b><br>
EOF
            $message=$message."\n\n";
            out convert_br($head);
            out convert_br($message);
            out convert_br($foot);
            out <<EOF;
            <p><b>Absender:</b> $von_mail<br><br>
EOF
            $"=" ";
            if ($alle ne "")
            {
                   @mail=split(/,/,$alle);
            }else
            {
                   for ($i=0; $i<=$anzahl; $i++)
                   {
                       if (${neu.$i} ne "")
                       {
                          push @mail,${neu.$i};
                       }
                   }
            }
            unless (@mail)
            {
                  $emsg.="Es wurden keine Empfänger markiert! - Bitte holen Sie das nach<br>";
            }
            if ($emsg ne "")
            {
               out <<EOF;
                  <p><font color=red>$emsg</font></p>
EOF
               &Form($an, $betreff, $von, $von_mail, $head, $message, $foot);
            }
            else
            {
               $"=",";
               out "<b>An:</b> @mail";
               if ($Vorschau)
               {
                 &Form($an, $betreff, $von, $von_mail, $head, $message, $foot);
               }else
               {
                 for (@mail)          # mailversand startet
                 {
                     $newfoot=$foot;
                     $newfoot =~ s/AAABBB/$_/g;
                     mail "$_", "$betreff", "$head$message$newfoot", "$von_mail", "$an", "$von";
 "Content-type: text/html\n";                 }
                 put ["Betreff",$betreff,"Message",$message,"Empfaenger","@mail"],"archiv";
                 out "<p>Mail versendet und Daten ins Archiv gespeichert";
               }
            }
       }elsif ($wcheck==1)
       {
                 if ($kats eq "*")
                 {
                    $kats=$alle_kats;
                    &Form($an_name, "", $von_name, $von_email, $header, $text, $footer);
                 }else
                 {
                    @kategorie=split(/,/,$kats);
                    $kats=$kategorie[0];
                    $kategorie[1] =~ s/\+/ /g;
                    &Form($an_name, $kategorie[1], $von_name, $von_email, $header, $text, $footer);
                 }
       }
}elsif ($cmd eq "admin")
{
       out "<p><a href=$link>Start</a></p><p> </p>";
       if ($do eq "del")
       {
          del "Id==$Id","archiv";
          out "<p>Eintrag gelöscht";
          &archiv;
       }elsif ($do eq "mod")
       {
          get "Id==$Id","archiv";
          out <<EOF;
          <form action='$link&cmd=admin&do=do_mod' method='post' enctype='multipart/form-data'>
          <input type="hidden" name="htx=" value="$htx">
          <input type="hidden" name="do=" value="do_mod">
          <input type="hidden" name="cmd=" value="admin">
          <input type="hidden" name="Id=" value="$_id">
          <table><tr><td>Betreff: </td><td>
          <input type="Text" name="betreff=" value="$Betreff" size="50" maxlength="50"></td></tr>
          <tr><td>Text: </td><td><textarea name="message=" cols="70" rows="15">$Message</textarea></td></tr>
          <tr><td></td><td><input type="submit" value="Abschicken"> <input type=reset value="Zurücksetzen">
          </td></tr></table></form>
EOF
       }elsif ($do eq "do_mod")
       {
          if ($Id)
          {
             mod "Id==$Id",["Message",$message,"Betreff",$betreff],"archiv";
             out "<p>Eintrag geändert</p>";
             &archiv;
          }
       }elsif ($do eq "del_mail")
       {
             del "Id==$Id","liste";
             out "<p>Mailadresse gelöscht</p>";
             &archiv;
       }elsif ($do eq "del_rub")
       {
              get "","liste","weg";
              out "<p>";
              while (get_next("weg"))
              {
                    out "$kat<br>";
                    $Kat=~ s/(^|,)$rub_id(,|$)/$1 && $2/ge;
                    if ($Kat ne $kat)
                    {
                       mod "Id==$_id",["kat",$Kat],"liste";
                       out "modifiziere mit $Kat bei $_id<br>";
                    }
                    $kat=$Kat="";
              }
              del "rub_id==$rub_id","rubriken";
              out "<p>Rubrik $rub_id gelöscht</p>";
              &archiv;
       }elsif ($do eq "mod_rub")
       {
             out <<EOF;
             <p>
             <form action='$link&cmd=admin' method='post' enctype='multipart/form-data'>
             <input type="hidden" name="htx=" value="$htx">
             <input type="hidden" name="do=" value="do_mod_rub">
             <input type="hidden" name="cmd=" value="admin">
             <input type="hidden" name="rub_id=" value="$rub_id">
             <input type="hidden" name="rubrik=" value="$rubrik">
              Rubrikname ändern <input type="text" name="new_rubrik=" value="$rubrik">             <p>
             <input type="submit" value="Abschicken">
             </form>
EOF
       }elsif ($do eq "do_mod_rub")
       {
             out "<p>Rubrik $rubrik geändert</p>";
             $rubrik =~ s/ /\\ /g;
             mod "rub_id==$rub_id",["rubrik",$new_rubrik],"rubriken";
             &archiv;
       }elsif ($do eq "new_rub")
       {
             get "rub_id==#","rubriken";
             $rub_id++;
             put ["rub_id",$rub_id,"rubrik",$new_rubrik],"rubriken";
             out "<p>Rubrik $_put{rubrik} hinzugefügt</p>";
             &archiv;
       }else
       {
          &archiv;
       }
}
else
{
out <<EOF;
<h1>Mailverteiler</h1>
<p>was möchten Sie erledigen?</p>
<p><a href="$link&cmd=erstellen">Newsletter erstellen und verteilen</a><br>
<a href="$link&cmd=admin">Rubriken und Archiv administrieren</a><br>
</p>
EOF
}
 usw...