uucpmail.de

← zurück zur Startseite · English

Erste Schritte

Von null zu funktionierender UUCP-Mail auf einem Linux-System in etwa 30 Minuten. Alles hier Gezeigte ist das Standard-Taylor-UUCP aus den Distributions-Paketen – keine Spezialsoftware nötig.

Lieber ohne Taylor UUCP starten? Der native uucpmail-Client (Linux/Windows/macOS, Open Source) bringt UUCP-over-SSH, Schlüssel­erzeugung und OpenPGP in einer Binärdatei mit. Diese Anleitung beschreibt den klassischen Weg mit Taylor UUCP und Postfix – beide führen zum selben Zugang.

0. Was du brauchst

# Debian / Ubuntu
sudo apt install uucp openssh-client

# Fedora
sudo dnf install uucp openssh-clients

Dazu einen Beta-Zugang: SSH-Key erzeugen und den Public Key an beta@uucpmail.de schicken. Du bekommst deinen Nodenamen (z. B. u7a2f4c) und deine Adresse zurück. Optional kannst du eine Wunschadresse nennen (den Localpart vor dem @, z. B. anna → anna@uucpmail.de): Kleinbuchstaben, Ziffern und . _ + = -, beginnend mit Buchstabe/Ziffer; in der Beta erfüllen wir sie nach Verfügbarkeit (Rollenadressen ausgenommen), sonst teilen wir eine zu.

ssh-keygen -t ed25519 -N '' -f ~/.ssh/uucpmail -C uucpmail
cat ~/.ssh/uucpmail.pub   # diese Zeile mitschicken

In den Beispielen unten stehen u7a2f4c für deinen Nodenamen und du für den Localpart deiner Adresse – ersetze beide.

1. UUCP konfigurieren

Drei kleine Dateien unter /etc/uucp/ (als root):

/etc/uucp/config

nodename u7a2f4c

/etc/uucp/sys

system uucpsrv
time any
port ssh
# SSH authentifiziert bereits – keinen Login-Chat versuchen:
chat ""
protocol t
commands rmail
# Mailzustellung braucht receive-request true (Default ist false!)
receive-request true
send-request false
command-path /usr/local/bin /usr/bin /bin
pubdir /var/spool/uucppublic

/etc/uucp/port

port ssh
type pipe
reliable true
command /usr/bin/ssh -q -x -a -T -i /etc/uucp/ssh/id_ed25519 -o UserKnownHostsFile=/var/spool/uucp/.ssh/known_hosts -o StrictHostKeyChecking=accept-new uucp@uucp.uucpmail.de

Key dorthin legen, wo der User uucp ihn lesen kann:

sudo mkdir -p /etc/uucp/ssh /var/spool/uucp/.ssh
sudo install -m 600 -o uucp ~/.ssh/uucpmail /etc/uucp/ssh/id_ed25519
sudo chown -R uucp:uucp /var/spool/uucp

Erster Verbindungstest (holt auch gleich wartende Mail ab):

sudo -u uucp /usr/sbin/uucico -S uucpsrv
sudo tail /var/log/uucp/Log    # "Handshake successful" = alles gut

2a. Minimal-Variante: ohne eigenen Mailserver

Eingehende Mail liefert der Server als rmail-Aufruf aus. Ohne MTA genügt ein Dreizeiler, der alles in eine mbox-Datei legt:

sudo tee /usr/local/bin/rmail <<'EOF'
#!/bin/sh
cat >> /var/spool/uucppublic/inbox.mbox
EOF
sudo chmod 755 /usr/local/bin/rmail

Lesen mit mutt -f /var/spool/uucppublic/inbox.mbox. Senden geht direkt per uux – wichtig ist die erste Zeile (From du@uucpmail.de, ohne Doppelpunkt!), sie ist der Envelope-Absender:

printf 'From du@uucpmail.de\nFrom: du@uucpmail.de\nTo: ziel@example.com\nSubject: Hallo\n\nGruesse via UUCP!\n' \
  | uux -r - 'uucpsrv!rmail' 'ziel@example.com'
sudo -u uucp /usr/sbin/uucico -S uucpsrv

2b. Komfort-Variante: Postfix als lokaler MTA (empfohlen)

Damit funktionieren mutt, mail und jedes Programm, das sendmail spricht, ganz normal – Postfix schiebt alles Nicht-Lokale in den UUCP-Spool. Bei der Paketinstallation als Konfigurationstyp „Lokal" wählen, dann:

sudo postconf -e \
  myhostname=u7a2f4c.uucpmail.de \
  mydomain=uucpmail.de \
  myorigin=uucpmail.de \
  mydestination="localhost, \$myhostname" \
  inet_interfaces=loopback-only \
  default_transport=uucp:uucpsrv

# UUCP-Transport in der master.cf anlegen:
sudo postconf -M 'uucp/unix=uucp unix - n n - - pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - uucpsrv!rmail ($recipient)'

Eingehende UUCP-Mail soll Postfix lokal zustellen – dafür ein rmail-Wrapper (Zustellung an localpart@localhost, sonst entstünde eine Transportschleife):

sudo tee /usr/local/bin/rmail <<'EOF'
#!/bin/sh
rcpt="${1:?rmail: Empfaenger fehlt}"
exec /usr/sbin/sendmail -i "${rcpt%%@*}@localhost"
EOF
sudo chmod 755 /usr/local/bin/rmail

Aliases für Rollenadressen (falls z. B. postmaster@ auf deinen Node zeigt) und neu laden:

echo 'postmaster: du@localhost' | sudo tee -a /etc/aliases
sudo newaliases && sudo systemctl reload postfix

Fertig: mutt (From-Adresse in ~/.muttrc: set from="du@uucpmail.de", set use_from=yes, set envelope_from=yes) oder mail -s "Test" ziel@example.com schreiben – gesendet und empfangen wird beim nächsten Poll.

3. Regelmäßig abholen

# alle 15 Minuten – der Takt gehört dir:
echo '*/15 * * * * uucp /usr/sbin/uucico -S uucpsrv' | sudo tee /etc/cron.d/uucpmail

Eine UUCP-Session überträgt immer beides: Deine gequeuten Mails gehen raus, wartende kommen rein. Einmal täglich ist genauso legitim wie alle fünf Minuten – das ist der Punkt von UUCP.

Fehlersuche

SymptomLösung
Permission denied (publickey) Key beim Betreiber registriert? Richtiger Key unter /etc/uucp/ssh?
Handshake failed (You are unknown to me) Nodename in /etc/uucp/config prüfen – muss exakt der zugeteilte sein
Timed out in chat script chat "" in /etc/uucp/sys fehlt
System already locked Es läuft noch ein uucico (z. B. aus cron) – kurz warten
Versand wird abgelehnt (553) Envelope-Absender muss eine deiner registrierten @uucpmail.de-Adressen sein
Debug-Ansicht sudo -u uucp /usr/sbin/uucico -S uucpsrv -D -x chat,handshake und /var/log/uucp/Log bzw. /var/log/uucp/Debug

Es gelten die Free-Tier-Limits und die Beta-Bedingungen. Fragen und Probleme: beta@uucpmail.de – gern auch per UUCP-Mail, sobald dein Setup steht.