1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
bsmtpd / sbsmtp / rbsmtp / bsmtp
================================
BSMTP-Treiber fuer alte sendmail-Versionen (nach einer Idee von Thomas Hepper)
Je nach gewaehltem Programmnamen fungiert das Programm als bsmtp-Mailer
via stdin (bsmtp) oder TCP (bsmtpd), bsmtp-Empfaenger (rbsmtp) oder
bsmtp-Batcher (sbsmtp). Derzeit wird ausschliesslich sendmail(8)
unterstuetzt, jedoch kann das Programm auch fuer smail(8) eingesetzt werden.
* Achtung: aus verstaendlichen Gruenden kann ich keine Haftung fuer
* Schaeden oder Datenverluste bei Programmfehlern uebernehmen! Die
* Benutzung erfolgt auf eigene Gefahr!
Das Programm ist in der Version 2.2 getestet unter Irix 3.2.2, Sun-OS 4.1.3,
NeXTstep 3.1, Linux und Solaris 2.4. Weitere Erfolgsmeldungen sowie
Fehlermeldungen bitte an 'bsmtp@hiss.han.de'. Die Version 2.3 wird in meinem
Dunstkreis bislang nur unter Linux (sendmail 8.6.12) und im juengsten
Patchlevel unter NeXTstep 3.1 (sendmail 5.65) betrieben.
INSTALLATION: In den Dateien 'config.h' und 'Makefile' (INSTDIR!) die Pfade
und Parameter auf das eigene System anpassen und dann '$ make'. Nach Erfolg:
'$ make install'. Die Datei 'batchparms' muss separat editiert und
installiert werden. Wichtig: Die erforderlichen Verzeichnisse muessen per
Hand angelegt werden. Und nicht vergessen: ownership und Zugriffsrechte
setzen! Und: rbsmtp wird von uuxqt ueblicherweise in /usr/bin erwartet,
liegt jedoch nach 'make install' in /usr/local/lib/bsmtp - der Link ist
per Hand zu machen.
WICHTIGER HINWEIS: Fuer einen fehlerfreien make(1) wird ein Programm namens
'arch' benoetigt, welches als Ausgabe die verwendete Rechnerarchitektur
liefert. Wem dieses Programm fehlt, moege das beigelieferte 'arch.sh'
verwenden ('$ make arch' oder '$ mv arch.sh arch').
bsmtp / bsmtpd
--------------
Funktionsprinzip: Fuer ausgehende Mail wird sendmail ein zusaetzlicher
Mailer bereitgestellt, der die Mails im BSMTP-Format in einer Datei sammelt
und bedarfsweise (d.h. entweder nach ausdruecklichem Programmaufruf oder bei
Ueberschreiten einer bestimmten Dateigroesse) an uux weitergeleitet. Dieser
Mailer wird ueber stdin (bsmtp) bzw. TCP (bsmtpd) angesprochen und muss
daher in letzterem Falle in /etc/inetd.conf und /etc/services eingetragen
werden. Hinweis: beide Programmvarianten koennen parallel eingesetzt werden!
Nachteile des bsmtpd:
* Fuer jedes via bsmtp versorgte System muss ein eigener Port
reserviert werden, derzeit sogar ein separater bsmtp-Treiber
aufgerufen werden.
* Die rules im sendmail.cf muessen als Zielsyetem nicht das via
bsmtp zu versorgende System, sondern localhost angeben.
Vorteil des bsmtpd:
* Auf dem jeweiligen System ist kein weiterer Mailer notwendig,
da bsmtpd die Schnittstelle zwischen UUCP und SMTP bildet.
Vorteile von bsmtp und bsmtpd gegenueber shell-Skripten:
* Eine Ueberpruefung auf ausreichenden Plattenplatz etc. ist in
shell-Skript-Versionen zwar moeglich, jedoch zeitaufweendig und
umstaendlich.
* Auch 8-bit-Mail kann sauber transportiert werden,
ESMTP-Unterstuetzung ist in Arbeit bzw. teilweise bereits
eingebaut.
* Der localpart von Adressen kann jetzt auch Spaces enthalten. In
den shell-Skript-Versionen waren solche Adressen zum Tode durch
Syntax-Error verdammt.
* Es geht schneller.
sbsmtp
------
Schickt die Batches gemaess batchparms ab.
rbsmtp
------
Als rbsmtp erwartet das Programm von stdin einen SMTP-Batch; zulaessige
Kompressionsprogramme sind compress, freeze und gzip (siehe depress.h). Das
Kompressionsverfahren wird automatisch erkannt, die gekapselten Mails
gemaess RCPT/MAIL an sendmail uebergeben. Wichtig: im Fehlerfall bricht das
Programm ohne Vorwarnung ab, es wird zudem angenommen, dass der Eingabebatch
syntaktisch korrekt ist!
Installation:
-------------
Anpassung: Editieren von config.h, depress.h und Makefile :-)
Dann:
$ vi config.h depress.h Makefile
$ touch Makefile.templ
$ make Makefile
$ make depend all
Beispiel (sendmail 5.65; fuer sendmail 8.6 siehe bsmtpd.m4):
------------------------------------------------------------
*** /etc/passwd
bsmtp:*:9:9::/tmp:
*** inetd.conf (nur fuer bsmtpd):
bsmtp stream tcp nowait bsmtp /usr/local/lib/sbsmtp/bsmtpd bsmtpd
*** /etc/services (nur fuer bsmtpd):
bsmtp 26/tcp
*** /etc/sendmail.cf (bsmtpd):
[...]
### Trusted users
T root bsmtp
[...]
Muucp, P=/usr/bin/uux, F=msDFMuV, S=13, R=23, E=\n,
A=uux - -r -a$f $h!rmail ($u)
Mbsmtpd, P=[TCP], F=msDFMuCX, S=13, R=23, A=TCP localhost 26
[...]
R$*<@$+>$* $#bsmtpd $@localhost $:$1<@$2>$3 user@some.where
*** /etc/sendmail.cf (bsmtp):
[...]
### Trusted users
T root bsmtp
[...]
Muucp, P=/usr/bin/uux, F=msDFMuV, S=13, R=23, E=\n,
A=uux - -r -a$f $h!rmail ($u)
Mbsmtp, P=/usr/local/lib/bsmtp/bsmtp, F=msDFMSXun, S=13, R=23, E=\n,
A=bsmtp -t$h -f$g $u
[...]
R$*<@$+>$* $#bsmtp $@$R $:$1<@$2>$3 user@some.where
|