qmail
qmail ist ziemlich feature-arm, und unterstützt deswegen kein SMTP AUTH
von Haus aus. Hierzu müssen wir einen Patch auf den Source Tree von qmail
anwenden. Dies ist einfacher als es sich anhört. Man muss ihn lediglich in
den Source Tree von qmail kopieren und dort mittels patch -p1 <
qmail-remote_authenticated_smtp.patch anwenden. Nach einem make setup check
sollte nun das neue Binary installiert sein. Jetzt erstellen wir einen Eintrag
in der /var/qmail/control/smtproutes, der so aussieht:
:mail.trash.net:$USER:$PASSWORD
Leider unterstützt qmail noch kein SMTP AUTH über TLS, was einen
ziemlichen Schwachpunkt darstellt. Ich empfehle daher, einen SSH Tunnel zu
trash.net mit Portforwarding zu machen, Details dazu finden sich hier.
postfix
Deine Mithilfe ist gesucht!
exim
Deine Mithilfe ist gesucht!
sendmail (von Thomas Bader)
Wenn Du Sendmail hast und deine Mails ueber trash.net
loswerden moechtest, dann wirst Du in den meisten Faellen
Sendmail neu kompilieren muessen. Du brauchst dazu einige
zusaetzliche Bibliotheken. Du brauchst:
* cyrus-sasl
* sfio
* libdb2
* OpenSSL
Wenn Du Debian als Distribution einsetzt, reicht ein
apt-get install libsasl7 libsasl-dev libsasl-modules-plain
libssl-dev equivs libdb2 libdb2-dev libdb2-util procmail
sfio1999 sfio-dev
Bei anderen Distributionen oder Unices musst Du dir die
Bibliotheken selber kompilieren. Ferner benoetigst Du noch
eine Gruppe, die smmsp heisst. Hinzufuegen kannst Du die
entweder mit groupadd oder dem Konfigurationstool deiner
Distribution.
Wenn Du diese Vorarbeiten erfuellt hast, musst Du den
Quellcode von Sendmail holen:
cd /usr/src
wget ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.12.1.tar.gz
tar xvfz sendmail.8.12.1.tar.gz
ln -s sendmail-8.12.1/ sendmail
cd sendmail
Nun bist Du im Quellcode-Verzeichnis von Sendmail. Wechsle
in das Unterverzeichnis "devtools/Site" und erstelle darin
eine Datei namens "site.config.m4", die folgenden Inhalt
halt:
#
# Stuff to use authentication
APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
#
# Stuff to use sfio
define(`confSTDIO_TYPE', `portable')
APPENDDEF(`confENVDEF', `-DSFIO')
APPENDDEF(`confLIBS', `-lsfio')
#
# Stuff to use TLS
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
Wenn Du diese Datei erstellt hast, gibst Du im
Toplevel-Verzeichnis (/usr/src/sendmail) folgendes ein:
./Build
make install
Damit wird Sendmail kompiliert und installiert. Ein bereits
bestehender MTA wird dabei ueberschrieben. Eventuell ist es
besser, wenn Du diese Aenderung im Packet-Management deiner
Distribution festhaelst. Falls Du Debian hast, machst Du vor
dem "make install" noch folgendes:
cd /usr/src
equivs-build mta.ctl
dpkg -P --force-depends sendmail
dpkg -i mta-dummy_1.0_all.deb
Wobei mta.ctl folgenden Inhalt hat:
Section: mail
Package: mta-dummy
Provides: mail-transport-agent
Description: MTA dummy package
This package provides dpkg with the information that
there is a local MTA installed.
.
Installing mutt, pine etc. won't bug you to
install sendmail any more
Nachdem Du Sendmail installiert hast, sind noch folgende
Nacharbeiten zu erledigen:
mkdir /var/spool/mqueue
mkdir /var/spool/mqueue/df
mkdir /var/spool/mqueue/qf
mkdir /var/spool/mqueue/xf
chown smmsp:smmsp /var/spool/clientmqueue
chmod 770 /var/spool/clientmqueue
chmod 700 /var/spool/mqueue/
Und ein Init-Skript solltest Du auch erstellen, falls Du
noch keines hast. Mein Init-Skript sieht zB. so aus:
#!/bin/sh
FLAGS="defaults 23"
test -f /usr/sbin/sendmail || exit 0
case "$1" in
start)
echo -n "Starting MTA:"
echo -n " sendmail"
/usr/sbin/sendmail -L sm-mta -bd -q1h
/usr/sbin/sendmail -L sm-msp-queue -Ac -q30m
echo "."
;;
stop)
echo -n "Stopping MTA:"
echo -n " sendmail"
killall /usr/sbin/sendmail
echo "."
;;
restart|force-reload)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: /etc/init.d/sendmail {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
Dieses Skript musst Du dann an die entsprechenden Orte
verlinken, dies haengt jedoch von deiner Distribution ab.
Unter Debian reicht ein einfaches
update-rc.d sendmail defaults
Zu guter letzt musst Du noch eine .mc-Datei erstellen. Falls
Du noch keine hast, kannst Du in der Sendmail beliegenden
Dokumentation erfahren, wie Du eine erstellst. Auf jeden
Fall muss das .mc-File folgende Anweisungen enthalten:
define(`confAUTH_MECHANISMS', `PLAIN LOGIN')dnl
TRUST_AUTH_MECH(`PLAIN LOGIN')dnl
FEATURE(`authinfo', `hash /etc/mail/authinfo')dnl
define(`SMART_HOST', `smtp:mail.trash.net')dnl
Zu guter Letzt musst Du noch die Datei /etc/mail/authinfo
erstellen. Sie enthaelt folgende Zeile:
AuthInfo:mail.trash.net "U:$USER" "P:$PASS" "R:mail.trash.net" "M:PLAIN"
Wenn Du die Datei mit
makemap hash authinfo < authinfo
in ein fuer Sendmail lesbares Datenbankformat uebersetzt
hast, kannst Du Sendmail neu starten und deine Mails werden
ueber trash.net geschickt.
|