<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <META NAME="GENERATOR" CONTENT="lfparser_2.38">
 <META NAME="LFCATEGORY" CONTENT="UNIXBasics">
 <link rel="icon" href="../../common/images/lf-16.png" type="image/png">
 <TITLE>lf308, UNIXBasics: Automail f&uuml;r fli4l</TITLE>
<style type="text/css">
<!--
 td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 }
 pre { font-family:monospace,Courier }
 pre.code { font-family:monospace,Courier;background-color:#aedbe8; }
 p.cl { color:#EE9500 }
 a.nodec { text-decoration:none }
 p.trans { font-size:8pt; text-align:right }
 p.clbox { width:50%; alignment:center; background-color:#FFD700; 
           border-style:none; border-width:medium; border-color:#FFD700; 
           padding:0.5cm;  text-align:center }
 p.code { width:80%; alignment:center; background-color:#aedbe8; 
          border-style:none; border-width:medium; border-color:#aedbe8; 
          padding:0.1cm;  text-align:left }
 p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; 
          border-width:medium; border-color:#AAAAAA; padding:0.5cm ; 
          margin-top:0.1cm; margin-right:1cm; margin-left:1cm; 
          text-align:center }
 .mark  { background-color:#e6e6ff }
-->
</style>
 
</HEAD>
<BODY bgcolor="#ffffff" text="#000000">
 <!-- this is generated html code. NEVER use this file for your
 translation work. Instead get the file with the same article number
 and .meta.shtml in its name. Translate this meta file and then
 use lfparser program to generate the final article -->
 <!-- lfparser can be obtained from http://www.linuxfocus.org/~guido/dev/lfparser.html -->

<!-- this is used by a number of tools:
 =LF=AUTHOR: Stefan Blechschmidt
 =LF=CAT___: UNIXBasics
 =LF=TITLE_: Automail f&uuml;r fli4l
 =LF=NUMBER: 308
 =LF=ANAME_: article308.shtml
 -->

<!-- 2pdaIgnoreStart -->

<!-- start navegation bar, style=2 -->
 <!-- top navegation bar -->
 <TABLE summary="topbar_1" cellspacing="0" cellpadding="0" border="0" align="center" width="90%">
   <TR bgcolor="#2e2292">
     <TD class="top"><TABLE summary="topbar_1_logo" cellspacing="0" cellpadding="0" border="0" width=
       "100%">
         <TR><TD width="319"><IMG src="../../common/images/logolftop_319x45.gif"
           alt="[LinuxFocus-icon]" width="319" height="45" align="left" 
           border="0"></TD>

           <TD class="top">
             <TABLE summary="topbar_1_links" width="100%">
               <TR align="right">
                 <TD class="top">
                 <A class="nodec" href="index.shtml"><FONT color=
                 "#DDDDDD" size="2">&lt;--</FONT></A> &nbsp;| 
                 <A class="nodec" href="../index.shtml"><FONT color=
                 "#DDDDDD" size="2">Home</FONT></A> &nbsp;| 
                 <A class="nodec" href="../map.html"><FONT color=
                 "#DDDDDD" size="2">Plan</FONT></A> &nbsp;| 
                 <A class="nodec" href="../indice.html"><FONT color=
                 "#DDDDDD" size="2">Index</FONT></A> &nbsp;| 
                 <A class="nodec" href="../Search/index.html"><FONT color=
                 "#DDDDDD" size="2">Suchen</FONT></A> </TD>
               </TR>

               <TR align="right">
                 <TD class="top">
                   <HR width="100%" noshade size="1">
                 </TD>
               </TR>
             </TABLE>
           </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end top navegation bar -->
 <!-- blue bar -->
 <TABLE summary="topbar_2" cellspacing="0" cellpadding="0" border="0" align="center"
 width="90%">
   <TR bgcolor="#00ffff">
     <TD><IMG src="../../common/images/transpix.gif" width="1" height=
     "2" alt=""></TD>
   </TR>
 </TABLE>
 <!-- end blue bar -->
 <!-- bottom navegation bar -->
 <TABLE summary="topbar_3" cellspacing="0" cellpadding="0" border="0" align="center"
 width="94%">
   <TR bgcolor="#000000">
     <TD>
       <TABLE summary="topbar_3_links" cellspacing="0" cellpadding="1" border="0" width=
       "100%">
         <TR align="center">
           <TD WIDTH="20%"><A class="nodec" href="../News/index.shtml"><FONT color=
           "#FFFFFF">Nachrichten</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Archives/index.html"><FONT color=
           "#FFFFFF">Archiv</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../Links/index.shtml"><FONT color=
           "#FFFFFF">Links</FONT></A> </TD>
           <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD>
           <TD WIDTH="20%"><A class="nodec" href="../aboutus.html"><FONT color=
           "#FFFFFF">&Uuml;ber uns</FONT></A> </TD>
         </TR>
       </TABLE>
     </TD>
   </TR>
 </TABLE>
 <!-- end bottom navegation bar -->
<!-- stop navegation bar -->

<!-- SSI_INFO -->

<!-- tr_staticssi include virtual -->
<!-- tr_staticssi exec cmd -->
<!-- addedByLfdynahead ver 1.4 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Dieses Dokument ist verf&uuml;bar auf: <A href="../../English/September2003/article308.shtml">English</a> &nbsp;<A href="../../Castellano/September2003/article308.shtml">Castellano</a> &nbsp;<A href="../../Deutsch/September2003/article308.shtml">Deutsch</a> &nbsp;<A href="../../Francais/September2003/article308.shtml">Francais</a> &nbsp;<A href="../../Nederlands/September2003/article308.shtml">Nederlands</a> &nbsp;<A href="../../Turkce/September2003/article308.shtml">Turkce</a> &nbsp;</FONT></TD></TR></TABLE><br>
 


<!-- SSI_INFO STOP -->
<!-- 2pdaIgnoreStop -->

<!-- SHORT BIO ABOUT THE AUTHOR -->
<TABLE ALIGN=LEFT BORDER=0  WIDTH="190" summary="about the author">
<TR>
<TD>

<IMG SRC="../../common/images/stefan_blechschmidt.jpg" ALT="Stefan Blechschmidt"  width="100" height="121">
<BR>von  Stefan Blechschmidt <br> <small>&lt;sb(at)sbsbavaria.de&gt;</small>
<BR><BR>
<I>&Uuml;ber den Autor:</I><BR>
<!-- aboutauthor_start -->
<P>
Als gelernter Elektriker hat man mich 1990 vor einen CAD Arbeitsplatz
gesetzt, um eine Schaltanlage zu planen. Anscheinend habe ich mich damals
mit
einem noch unbekannten Virus infiziert, und das ist gut so. </P>
<!-- aboutauthor_stop -->
<!-- TRANSLATED TO de -->
<!-- TRANSLATED TO STOP -->
<BR><i>Inhalt</i>:
<UL>
  <LI><A HREF="#308lfindex0">Kurze Beschreibung der Umgebung</A></LI>
  <LI><A HREF="#308lfindex1">Das Problem</A></LI>
  <LI><A HREF="#308lfindex2">Die &Uuml;berlegung</A></LI>
  <LI><A HREF="#308lfindex3">Der L&ouml;sungsvorschlag</A></LI>
  <LI><A HREF="#308lfindex4">Anpassung Router</A></LI>
  <LI><A HREF="#308lfindex5">Anpassung Mailserver</A></LI>
  <LI><A HREF="#308lfindex6">Anpassungen mailstart.pl</A></LI>
  <LI><A HREF="#308lfindex7">Test</A></LI>
  <LI><A HREF="#308lfindex8">Download</A></LI>
  <LI><A HREF="#308lfindex9">Links / Referenzen </A></LI>
  <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=308">Talkback f&uuml;r diesen Artikel</A></LI>
</UL>

</TD></TR></TABLE>
<!-- HEAD OF THE ARTICLE -->
<br>&nbsp;
<table border="0"><tr><td>
<H2>Automail f&uuml;r fli4l</H2>
 <IMG SRC="../../common/images/article308/schema.png" ALT="Automail mit fli4l"  width="400" height="217">
<!-- ABSTRACT OF THE ARTICLE -->
<P><i>Zusammenfassung</i>:
<P>
<!-- articleabstract_start -->
<p>
Wer verwendet ihn nicht den Ein-Diskettenrouter von
<a href="http://www.fli4l.de">http://www.fli4l.de/</a>.
Sicher kennt auch jeder das Problem das entsteht, wenn man den Router
als <i>dial-on-demand</i> Router in einem vorhandenen Netzwerkverbund mit internem
Mailserver verwendet.
Wenn der Router eine Verbindung aufbaut, sollte auch der Mailserver davon erfahren,
um seine Mails zu versenden und abzuholen.
<br>
Dieser Artikel soll eine M&ouml;glichkeit beschreiben, wie man dieses Problem l&ouml;sen kann.</p>
<!-- articleabstract_stop -->

<br><!-- HR divider --><center><font color="#8282e0"><b>_________________ _________________ _________________</b></font></center><br>
</td></tr></table>
<!-- BODY OF THE ARTICLE -->


<A NAME="308lfindex0">&nbsp;</A>
<H2>Kurze Beschreibung der Umgebung</H2>

<p>
Das Titelbild zeigt eine schematische Darstellung des Netzwerks
um das es in diesem Artikel geht.
<i>WS1-3</i> stellen Workstationen dar, die eine Verbindung &uuml;ber den Router ins WWW haben.
Der <i>Service-Host</i> ist f&uuml;r das Handling der Mails intern und extern zust&auml;ndig.
Das Versenden wird vom <i>MTA</i> erledigt.
Abgeholt wird mit <i>fetchmail</i> und anschlie&szlig;end mit <i>procmail</i> sortiert.
Die Mailboxen auf dem Service-Host werden &uuml;ber <i>POP3</i> bzw.
<i>IMAP</i> den Workstationen zur Verf&uuml;gung gestellt.</p>

<A NAME="308lfindex1">&nbsp;</A>
<H2>Das Problem</H2>

<p>
Baut einer der Workstationen eine Verbindung ins WWW auf, kriegt in der Regel
der Service-Host nichts davon mit. Man k&ouml;nnte zwar &uuml;ber einen <i>cronjob</i> den
Service-Host anweisen, Mails zu festgelegten Zeiten zu versenden bzw. abzuholen.
Eleganter w&auml;re es aber, diesen bei einer Einwahl ins Netz zu informieren, so dass
er seine Arbeiten erledigen kann.</p>
<p>
Da der Router als Diskettenrouter betrieben wird,
scheidet ein aufwendiges Script oder Programm zur Steuerung des Mailservers
&uuml;ber den Router aus.</p>

<A NAME="308lfindex2">&nbsp;</A>
<H2>Die &Uuml;berlegung</H2>

<p>
Um den Service-Host &uuml;ber die Einwahl zu informieren, m&uuml;sste man lediglich
eine Anfrage machen, der einen Prozess startet, um die Mails  versenden bzw. abholen
zu k&ouml;nnen.</p>

<A NAME="308lfindex3">&nbsp;</A>
<H2>Der L&ouml;sungsvorschlag</H2>

<p>
F&uuml;r <i>fli4l</i> steht das Programm <i>wget</i> zur Verf&uuml;gung, das mit seiner Gr&ouml;&szlig;e
von ca. 100 kB leicht noch auf die Diskette passt.
Man kann mit <i>wget</i>, bei einer Einwahl zugleich eine Verbindung zu dem Service-Host
aufbauen.
Hierzu wird auf dem Service-Host mit <i>inetd</i> ein Port ge&ouml;ffnet, der auf die Verbindung
vom Router wartet. Bei einer Verbindung wird ein Script gestartet, das &uuml;ber
weitere Prozesse die eMails versendet und abgeholt.</p>
<p>
Das Script wurde in <a href="http://www.perl.org/">Perl</a> erstellt,
du kannst es dir <a href="../../common/src/article308/mailstart.pl.gz">hier (mailstart.pl.gz)</a> downloaden.</p>

<!-- Systemanpassung -->
<A NAME="308lfindex4">&nbsp;</A>
<H2>Anpassung Router</H2>

<p>
Bei einer Einwahl wird die Datei  <tt>.../opt/etc/ppp/ip-up </tt>  abgearbeitet.
Hier ist der richtige Platz, um eine Verbindung zu unserem Service-Host aufzubauen.
Mit dem Hinzuf&uuml;gen der Zeile:</p>
<pre class="code"> wget -t 1 --spider  MAILSERVER:PORT/xyz &amp;&gt; /dev/null</pre>
<p>
ist das auch schon erledigt.
</p>

<p><b>Kommando Erkl&auml;rung wget</b></p>
<pre class="code">
* Option -t 1
   Mit dieser Option wird ein Versuch unternommen, das Programm mailstart auf
   dem Mailserver zu erreichen.

* Option --spider
   Mit dieser Option wird die angeforderte Seite nicht heruntergeladen.
   Es wird lediglich &uuml;berpr&uuml;ft, ob die Seite vorhanden ist.</li>

* MAILSERVER:PORT/xyz
   Hier wird der Mailserver und der Port angegeben, &uuml;ber den das Programm
   angesprochen wird. Die Angabe <i>xyz</i> bezeichnet die Datei, die geholt
   werden soll. Diese Angabe ist eigentlich egal, wird sie weggelassen
   holt wget standardm&auml;&szlig;ig die Datei index.html.</li>

* /dev/null
   Die Ausgaben von wget werden ins Nirvana bef&ouml;rdert.
   Man kann diese Angabe auch weggelassen,
   um zu sehen was wget an Daten empf&auml;ngt.
</pre>

<A NAME="308lfindex5">&nbsp;</A>
<H3>Anpassung Mailserver</H3>

<p>
Auf dem Mailserver wird &uuml;ber dem Superserver <i>inetd</i> das Programm
mailstart <a href="#v1">[1]</a> gestartet.
Hierzu m&uuml;ssen wir die beiden Dateien <tt>/etc/services</tt> und <tt>/etc/inetd.conf</tt>
bearbeiten.
<p>
<b>/etc/services</b></p>
<p>
In dieser Datei wird der Port bestimmt, auf den <i>wget</i> zugreifen soll.
Mit der Zeile:</p>
<pre class="code">
mailstart  4000/tcp # Mailstart</pre>
<p>
ist das auch schon erledigt.</p>
<p>
<b>/etc/inetd.conf</b></p>
<p>
In dieser Datei wird das Programm angegeben, das gestartet werden soll.
Hierbei &uuml;berwacht <i>inetd</i> die Ausf&uuml;hrung und protokolliert dies in
<i>/var/log/syslog</i>  mit.</p>
<p>
Mit der Zeile:</p>
<pre class="code">
mailstart  stream  tcp  nowait  root  /usr/sbin/tcpd  /root/bin/mailstart</pre>
<p>
ist dieser Schritt auch erledigt. Hierbei muss der erste Name derselbe sein wie er
in der Datei  <i>/etc/services</i>  notiert wurde.</p>

<!-- Programmanpassung -->
<A NAME="308lfindex6">&nbsp;</A>
<H2>Anpassungen <i>mailstart.pl</i></H2>

<p>
&Uuml;ber Variable kann das Programm an den jeweiligen Server angepasst werden. </p>

<p>
<b>$protokoll</b></p>
<p>
Mit der Variable <i>$protokoll</i> kann bestimmt werden, ob die
Aufrufe mitgeschrieben werden sollen.
Wird die Variable auf <b>1</b>  gesetzt, werden die Aufrufe in
der Datei <i>/var/log/mailstart.log</i>  mitgeschrieben.

Ist die Variable auf <b>0</b> gesetzt, wird kein Protokoll
erstellt.</p>
<pre class="code">
Voreinstellung: 1   Protokoll erstellen</pre>

<p>
<b>$protokoll_ziel</b></p>
<p>
Mit dieser Variable kann man das Ziel des Protokolls
bestimmen.</p>
<pre class="code">
Voreinstellung: /var/log/mailstart.log</pre>

<p>
<b>$mailholen</b></p>
<p>
Hier wird das Programm eingetragen, mit dem die eMails
abgeholt werden.
Der Benutzer, der das Programm startet, ist root bzw. der,
der unter  <i>/etc/inetd.conf</i>  eingetragen wurde.  Will
man einen anderen Benutzer verwenden, so ist der Befehl
mit einem <nobr><tt> su USER -c \"BEFEHL PARAMETER\" </tt></nobr>
zu starten. Wenn der Befehl aus mehreren W&ouml;rtern besteht,
so muss man diese in Anf&uuml;hrungszeichen setzen. Diese
Anf&uuml;hrungszeichen sind mit einem  <b>\</b>  zu sch&uuml;tzen.</p>
<pre class="code">
Voreinstellung (eine Zeile):<br>
<font size="-1">su postmaster -c \"fetchmail -t 40 -a -L /var/log/fetchmail/fetchmail.log -f /home/postmaster/.fetchmailrc\"</font></pre>

<p>
<b>$mailsenden</b></p>
<p>
Hier wird das Programm eingetragen, mit dem die eMails
versendet werden.
Der Benutzer der das Programm startet, ist root bzw. der,
der unter  <i>/etc/inetd.conf</i>  eingetragen wurde.  Will
man einen anderen Benutzer verwenden, so ist der Befehl
mit einem<tt> su USER -c \"BEFEHL PARAMETER\"</tt>
zu starten. Wenn der Befehl aus mehreren W&ouml;rtern besteht,
so muss man diese in Anf&uuml;hrungszeichen setzten. Diese
Anf&uuml;hrungszeichen sind mit einem <b>\</b> zu sch&uuml;tzen.</p>
<pre class="code">
Voreinstellung: sendmail -q</pre>
<p>
&Uuml;brigens, im Programm ist eine kleine POD Dokumentation eingearbeitet, die
eine Beschreibung in Kurzfassung ausgibt. Du kommst zu dieser Beschreibung mit
<tt>perdoc mailstart</tt>. </p>

<A NAME="308lfindex7">&nbsp;</A>
<H2>Test</H2>

<p>
Vor dem Testen sollte zuerst der Superserver neu gestartet werden.
Ein <tt>/etc/init.d/inetd restart</tt> d&uuml;rfte reichen.
Nun kannst du mit <nobr><tt>telnet localhost  mailstart</tt></nobr> testen, ob der Server
antwortet. Du solltest nun eine Ausgabe &auml;hnlich dieser bekommen.</p>
<pre class="code">
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HTTP/1.1 220 OK
Date: Sun, 20 Jul 2003 10:45:46 GMT
Server: mailstart/perl (sbsbavaria)
Last-Modified: Sun, 20 Jul 2003 10:45:46 GMT
Content-Type: text/txt
Content-Length: 11

1234567890
Connection closed by foreign host.
</pre>

<p>
Das war's auch schon, ich hoffe du kommst mit dieser Beschreibung zu recht.
Wenn nicht, haben wir ein Problem.<br>
- Du, weil es nicht funktioniert. <br>
- Ich, weil es mir nicht gelungen ist, die Beschreibung ordentlich zu erstellen :-).</p>


<A NAME="308lfindex8">&nbsp;</A>
<H2>Download</H2>

<a name="v1"></a>
<ul><li><a href="javascript:history.back()">[1]</a>
    <a href="../../common/src/article308/mailstart.pl.gz">mailstart.pl.gz</a> - Perlprogramm zum Steuern des Service-Hosts</ul>


<A NAME="308lfindex9">&nbsp;</A>
<H2>Links / Referenzen </H2>

<ul><li><a href="http://www.fli4l.de/">www.fli4l.de</a> - fli4l Homepage
<li><a href="http://www.perl.org/">www.perl.org</a> - Perl Homepage</ul>



<!-- vim: set sw=2 ts=2 et tw=74: -->

<!-- 2pdaIgnoreStart -->
<A NAME="talkback">&nbsp;</a>
<h2>Talkback f&uuml;r diesen Artikel</h2>
Jeder Artikel hat seine eigene Seite f&uuml;r Kommentare und R&uuml;ckmeldungen. Auf dieser Seite kann jeder eigene Kommentare abgeben und die Kommentare anderer Leser sehen:
<center>
<table border="0"  CELLSPACING="2" CELLPADDING="1" summary="tb-button-outerpart">
 <tr BGCOLOR="#C2C2C2"><td align=center>
  <table border="3"  CELLSPACING="2" CELLPADDING="1" summary="tb-button">
   <tr BGCOLOR="#C2C2C2"><td align=center>
    <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=308"><b>&nbsp;Talkback Seite&nbsp;</b></a>
   </td></tr></table>
</td></tr></table>
</center>

<HR size="2" noshade>
<a style="background-color:#bdc6d5" href="index.shtml">&lt;--, zur&uuml;ck zum index dieser Ausgabe </a><br><HR size="2" noshade>
<!-- ARTICLE FOOT -->
<CENTER><TABLE WIDTH="98%" summary="footer">
<TR><TD ALIGN=CENTER BGCOLOR="#bdc6d5" WIDTH="50%">
<A HREF="../../common/lfteam.html">Der LinuxFocus Redaktion schreiben</A>
<BR><FONT COLOR="#FFFFFF">&copy; Stefan Blechschmidt, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT>
</TD>
<TD BGCOLOR="#bdc6d5">
<!-- TRANSLATION INFO -->
<font size=2>Autoren und &Uuml;bersetzer:</font>
<TABLE summary="translators">
  <tr><td><font size="2">de --&gt; -- : Stefan Blechschmidt <small>&lt;sb(at)sbsbavaria.de&gt;</small></font></td></tr>
</TABLE>
</TD>
</TR></TABLE></CENTER>
<p><font size=1>2003-08-13, generated by lfparser version 2.38</font></p>
<!-- 2pdaIgnoreStop -->
</BODY>
</HTML>