Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Einzeluser-Mailsystem unter debian, mit exim4, mutt, procmail und spamassassin

  1. #1
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.222

    Post Einzeluser-Mailsystem unter debian, mit exim4, mutt, procmail und spamassassin

    Inhaltsverzeichnis


    0 Vorwort, "Copyright und Anmerkungen"
    0.1 Vorwort
    In diesem kleinen Howto soll es um das Einrichten von exim4, procmail, fetchmail, spamassassin und mutt als MUA unter Debian auf einem Einzelusersystem gehen. Dabei orientiere ich mich sehr stark an zwei im Internet gefundenen Howto's auf Englisch - die ich grösstenteils auch einfach übersetzt habe, diesbezüglich bitte dann Unterkapitel 0.2 beachten. Einerseits, die Einrichtung von exim4, procmail, fetchmail und mutt [1] und andererseits für spamassassin [2], sowie auch ein allgemeinerer Artikel [3]. Ich hoffe, dass durch diese kleine Übersetzung, und trotzdem doch nicht ganz eins zu eins übernommen, sonst hätte ich ja einfach den Link posten können, kann ich jemandem damit helfen, obiges einzurichten, genauso wie es mir unheimlich geholfen hat. Nochmals: Dies bezieht sich jetzt mal explizit auf Debian, wie im Titel des howto's erwänt.

    0.2 Copyright zum Vorlagehowto
    Die "Hauptidee" habe ich von [1], einerseits habe ich eine Übersetzung stellenweise gemacht, andererseits auch schon nur die Idee davon als Basis genommen, und eingedeutscht. Foglich, muss ich hier noch einen Verweis auf die FDL angeben, weil es der dortige Author möchte.
    Copyright (C) 2004 Nicholas Lativy
    Contributors: Florian Schlichting
    Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the licence can be found here.
    0.3 Anmerkungen
    Ich glaube nicht, dass dieses wirklich sehr kleine Howto einfach ein Abklatsch und Übersetzung der Links [1],[2] und [3] geworden ist, auch ist es auf eine spezifische Distribution bezogen. Mit etwas wenig Arbeit lässt es sich bestimmt auch auf andere Distributionen übertragen, entsprechend halt den Schritten die wirklich auf debian bezogen sind (apt-get, dpkg-reconfigure, usw ...).
    Kritik und Verbesserungsvorschläge sind natürlich sehr herzlich villkommen, auch wenn jemand beim Testen grobe Fehler bemerkt, bitte melden!

    Folgende Basisprogramme sind dabei nötig: cron muss installiert sein, wenn man dann fetchmail so einrichten möchte, dass es automatisch mails abholen wird.
    Als Editor für die e-mails wird dann vim eingesetzt also auch dies installieren, jeder beliebige andere Editor geht aber natürlich auch, man wird nur die entsprechende Schritte anpassen müssen.

    Das ganze wurde/wird bei mir auf einem Debian Sid getestet. Unter sarge wird es auch noch klappen, bei woody habe ich es nicht ausprobiert, müsste im Prinzip trotzdem gehen, obwohl woody exim benützt, anstatt exim4.

    Als weiteres sein noch angefügt, dass hier in Forum auch schon ein weiteres älteres Howto [4] zu etwas ähnlichem existiert, allgemeiner, aber nicht mit exim4 als mailserver.

    0.4 Quellen
    [1] Email for the single user in Debian: http://homepage.ntlworld.com/lativy/...s/debian-mutt/
    [2] Fighting Spam on Debian with SpamAssassin: http://people.debian.org/~andrelop/t...sin-debian.txt
    [3] Installing spam assassin: http://brneurosci.org/linuxsetup49.html
    [4] Einfach & sicher mailen mit ssmtp, fetchmail, procmail und mutt: http://www.linuxforen.de/forums/showthread.php?t=117155

    MfG carnil
    Geändert von carnil (06.12.04 um 00:07 Uhr)

  2. #2
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.222

    Exim4 einrichten

    1 Exim4 einrichten
    Als erstes installieren wir alle benötigten Pakete nach:
    Code:
    # apt-get update && apt-get install cron exim4 fetchmail mutt procmail vim
    exim4 wird häufig schon installiert sein, falls man bei der Debian-Installation keinen anderen MTA ausgewählt hat. Ebenso wird auch cron schon installiert sein. Wie schon in 0.2 erwähnt, kann man anstelle von vim natürlich auch einen anderen Editor auswählen.

    Normalerweise wird exim4 als MTA installiert, bei einer debian-installation. Sollte also schon eingerichtet worden sein. Zur Sicherheit - um die Einstellung bezüglich Mailversand noch richtig einzustellen - machen wir ein:
    Code:
    # dpkg-reconfigure -phigh exim4-config
    und konfigurieren exim4. Dabei wollen wir nur die Fragen mit hoher Priorität bei debconf beantworten. Wir wählen:
    mail sent by smarthost; recieved via SMTP or Fetchmail
    So siehts aus: http://www.linuxforen.de/forums/atta...chmentid=10868

    Mit obigen Befehl garantieren wir, dass nur diejenigen Fragen gestellt werden, die debconf als "von hoher Priorität" einstuft, beim Rest werden automatisch Einstellungen gemacht.

    Als nächstes, müssen wir die e-mail addressen, konfigurieren, die in das Feld "From"/"Von" eingesetzt werden sollen, dafür editieren wir die Datei /etc/email-addresses:
    PHP-Code:
    # This is /etc/email-addresses. It is part of the exim package
    #
    # This file contains email addresses to use for outgoing mail. Any local
    # part not in here will be qualified by the system domain as normal.
    #
    # It should contain lines of the form:
    #
    #user: someone@isp.com
    #otheruser: someoneelse@anotherisp.com
    $LOCALUSERNAME$EMAIL-ADDRESSE 
    Also wie im Hilfetext eine entsprechende Zeile für das/die e-mail-account(s) einsetzen.
    Man ersetze also user mit dem lokalen Usernamen $LOCALUSERNAME, und die e-mail Adresse.
    Geändert von carnil (27.11.04 um 09:41 Uhr)

  3. #3
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.222

    Procmail einrichten

    2 Procmail einrichten
    Zunächst, was ist denn Procmail überhaupt? Dies ist sehr leicht auch über ein apt-cache show procmail möglich zu lesen:
    Zitat Zitat von apt-cache show procmail
    Description: Versatile e-mail processor
    Can be used to create mail-servers, mailing lists, sort your incoming
    mail into separate folders/files (real convenient when subscribing to one
    or more mailing lists or for prioritising your mail), preprocess your
    mail, start any programs upon mail arrival (e.g. to generate different
    chimes on your workstation for different types of mail) or selectively
    forward certain incoming mail automatically to someone.
    Procmail ist also bei uns dazu da, e-mails zu filtern, sagen wir z.B. um spam auszufiltern, und wenn man z.B. an mehere Mailinglisten angemeldet ist, um deren mails in verschiedene Verzeichnisse zu verschieben. Schreiben wir mal folgendes in die ~/.procmailrc
    PHP-Code:
    # Wo befindet sich das Mail-Verzeichnis?
    MAILDIR=$HOME/mail/
    # Wohin soll das log-file? Da wir hier alles für einen Einzel-User machen:
    LOGFILE=$HOME/.procmaillog
    # procmail soll nicht im verbose-Mode laufen
    VERBOSE=no

    # Die nächsten Einträge werden dann für die Konfiguration
    # spamassassin von Belang sein, siehe dafür weiter unten,
    # für eine Erklärung:
    :0 fhw
    spamc

    :0 fhw
    * ^X-Spam-StatusYes 
    spam
    /

    ## Mailinglisten. Für dieses Howto nehmen wir mal an, wir
    #  in den mailinglisten debian-user und debian-user-german
    #  eingeschrieben:

    # debian-user-german
    :0
    * ^TO_debian-user-german
    debian
    -user-german/

    # debian-user
    :0
    * ^TO_debian-user
    debian
    -user/

    # Alle anderen, nicht gefilterten Mails sollen in inbox
    # verschoben werden.
    :0
    inbox

    Man beachte bitte die abschliessenden "/" für die mailboxen, damit wird procmail amgewiesen, dass es diese Verzeichnisse als Verzeichnisse im maildir-format verwenden soll.
    Wir erstellen anschliessend die benötigten Verzeichnisse mit
    Code:
    $ mkdir -p ~/mail/inbox/{cur,new,tmp}
    $ mkdir -p ~/mail/sent/{cur,new,tmp}
    $ mkdir -p ~/mail/spam/{cur,new,tmp}
    $ mkdir -p ~/mail/debian-user/{cur,new,tmp}
    $ mkdir -p ~/mail/debian-user-german/{cur,new,tmp}
    Ist natürlich selbstverständlich, dass man diejenigen Verzeichnisse für debian-user, oder debian-user-german ausslassen kann, wenn man nicht in einer solchen Mailingliste eingeschrieben ist.
    Geändert von carnil (27.11.04 um 09:44 Uhr)

  4. #4
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.222

    Fetchmail einrichten

    3 Fetchmail einrichten
    Da wir hier nur ein "System" mit einem Einzelusermailaccount zum abholen betrachten wollen, schreiben wir die benötigten Einstellungen einfach in die lokale ~/.fetchmailrc, da dies "die" einfachste Methode ist, fetchmail so einzurichten, dass es auch als denjenigen User läuft, für den die mails abgeholt werden sollen. Schreiben wir also in die ~/.fetchmailrc folgendes hinein:
    PHP-Code:
    poll pop.isp.com with protocol pop3,
      
    user isp_username there is local_username here,
      
    with password isp_password;

    mda '/usr/bin/procmail -f fetchmail' 
    Wir ersetzen, natürlich pop.isp.com, isp_username und local_username mit den entsprechenden Werten, sowie natürlich auch pop3 für das entsprechende zu verwendende Protokol (es sei hier mal z.B. angemerkt, dass mit pop3 fetchmail unverschlüsselt das Passwort sendet, man kann also auch apop dafür verwenden). Die Unterstützten Protokolle kann man in der Manpage von fetchmail nachlesen.
    Für gmx macht man z.B. folgende Einstellungen:
    PHP-Code:
    poll pop.gmx.net with protocol pop3,
    user $LOGINNAME@gmx.net there is $LOCALUSER here,
    with password $PASSWORT
    Die ganze Prozedur, soll natürlich für jedes mail-account von dem man mails abholen möchte wiederholen.
    Man beachte, dass hier die Passworter im Klartext eingegeben werden!
    Die Mails werden, dann direkt procmail übergeben, der dann diese eintsprechend den in ~/.procmailrc Filterregeln sortiert werden.

    Nun Testen wir, ob fetchmail richtig eingerichtet ist, dafür geben wir in einer Konsole
    Code:
    fetchmail -vk
    ein. Es werden nicht "real" die mails abgeholt, sondern nur getestet, siehe dazu was in der Manpage zu fetchmail zu den Parametern -k und -v steht:
    Zitat Zitat von man fetchmail
    -v | --verbose
    Verbose mode. All control messages passed between fetchmail and
    the mailserver are echoed to stdout. Overrides --silent. Dou-
    bling this option (-v -v) causes extra diagnostic information to
    be printed.
    -k | --keep
    (Keyword: keep) Keep retrieved messages on the remote
    mailserver. Normally, messages are deleted from the folder on
    the mailserver after they have been retrieved. Specifying the
    keep option causes retrieved messages to remain in your folder
    on the mailserver. This option does not work with ETRN or ODMR.
    Also lassen wir es sicherheitshalber im verbose-Modus laufen, dass alle Meldungen auf der Konsole erscheinen werden, und zusätzlich weisen wir fetchmail an, die e-mails auf dem/den server(n) zu belassen.

    Funktioniert alles wie gewünscht, richten wir jetzt für den lokalen User die crontab entsprechend ein. Mit
    Code:
    $ crontab -e
    und stellen wir fetchmal so ein, dass es alle 10 Minuten, Mails abholen soll. Zusätzlich übergeben wir noch die Option -s mit, damit es nicht ständig Meldungen ausgibt.
    PHP-Code:
    */10 * * * * fetchmail -
    Geändert von carnil (05.12.04 um 21:54 Uhr)

  5. #5
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.222

    Spamassassin einrichten

    4 Spamassassin einrichten
    Als nächstes richten wir noch spamassassin ein. Falls es noch nicht installiert worden ist, kann man dies jetzt an dieser Stelle mit
    Code:
    # apt-get install spamassassin
    nachholen, wobei die benötigten Abhängigkeiten schön aufgelöst werden.

    Nun editieren wir die Datei /etc/default/spamassassin und ersetzen
    Code:
    ENABLED=1
    Um spamd erlauben zu können, zu starten. Anschliessend können wir mit
    Code:
    # /etc/init.d/spamassassin start
    den spamassassin daemon starten. Der obige Befehl startet spamd, eine Daemon-Version von Spamassassin, welches viel schneller als die offizielle Perl-Version sein soll. Anschliessen können wir auch die anfangs gemachten Einträge in ~/.procmailrc erklären:
    Code:
    :0 fhw
    | spamc
    übergibt alle mails spamc (dem client, welche mit spamd kommuniziert), und welcher alle e-mails scannt. Will man die E-Mails die als Spam "markiert" werden von den anderen sauberen trennen, kann man dies durch folgende weitere Filterregel einrichten:
    Code:
    :0 fhw
    * ^X-Spam-Status: Yes
    spam/
    Des weiteren editieren wir noch die Datei /etc/spamassassin/local.cf
    Code:
    required_hits 4.2 
    rewrite_subject 1
    rewrite_header Subject *****SPAM*****
    report_safe 0 
    report_header 1
    auto_learn 1
    Anschliessend starten wir, spamassassin nochmals:
    Code:
    # /etc/init.d/spamassassin restart
    Geändert von carnil (15.12.04 um 23:41 Uhr)

  6. #6
    Mod. Tipps und Tricks Avatar von carnil
    Registriert seit
    Jan 2004
    Ort
    Zürich
    Beiträge
    6.222

    Mutt als MUA einrichten

    5 Mutt als MUA einrichten
    5.1 Grundkonfiguration von Mutt
    Diese schreiben wir jetzt in die ~/.muttrc:
    PHP-Code:
    set mbox_type=maildir
    set mbox
    ="~/mail/inbox/"
    set spoolfile="~/mail/inbox/"
    set folder="~/mail/"
    set record="~/mail/sent/"

    # Füge hier für jede Mailbox einen Eintrag hinzu:
    mailboxes ~/mail/inbox ~/mail/debian-user ~/mail/debian-user-german


    # Wir wollen in der Header, nur die Informationen "from", "resent-from"
    # "reply-to", "x-mailer" "user-agent" "date" "to" "cc" und "subject" an-
    # zeigen lassen.

    ignore *
    unignore from resent-from reply-to x-mailer user-agent date to cc subject

    # In welcher Reihenfolge sollen diese gewünschten Header angezeigt werden?
    hdr_order FromResent-FromReply-ToX-MailerUser-AgentDateToCcSubject:

    # Wie sollen die Mail sortiert werden?
    set sort=threads

    # Soll beim antworten, atomatisch zitiert werden? In diesem Fall
    # ja
    set include=yes

    # Wie soll zitiert werden
    set indent_str="> "

    # Zeige den body nur an, wenn eine Mail editiert wird.
    unset edit_headers

    # Möchten auch Mutt so einstellen, dass man auch fetchmail manuell
    # aufrufen kann. Durch eingegen von G wird fetchmail aufgerufen.
    macro index    G "!fetchmail\n"   "Invoke fetchmail"
    macro pager    G "!fetchmail\n"   "Invoke fetchmail"

    # Gebe mutt an, an welche Mailinglisten wir angemeldet sind
    subscribe debian-user-german debian-user

    # Mit der nächsten Einstellung, richten wir mutt so ein, dass der
    # Author des Mails angezeigt wird, in der Liste
    set index_format="%4C %Z %{%b %d} %-15.15F (%?l?%4l&%4c?) %s"

    # Suche mithilfe von abook als Adressbuch (siehe weiter unten!)
    set query_command="abook --mutt-query '%s'"

    # muttprint installieren, dann folgende Zeile auskommentieren, damit
    # man auch in Mutt die e-mails ausdrucken kann.
    # set print_command="muttprint"

    # urlview: Ausgeben von links die in einer e-mail vorhanden sind,
    # zur Weiterverwendung mit einem Browser
    macro index \cb   "|urlview\n"
    macro pager \cb   "|urlview\n"

    # Durch drücken der Taste a, kann man den Absender in das 
    # Addressbuch aufnehmen
    macro index a     "|abook --add-email\n" 'add sender to abook'
    macro pager a     "|abook --add-email\n" 'add sender to abook'

    # Signatur ide für die e-mails verwendet werden soll. Man lasse hier
    # die Pipe "|" weg, wenn es sich um ./signature um kein skipt handeln
    # sollte
    set signature="~/.signature|"

    # Farben definieren für Mutt
    color normal            default         default
    color hdrdefault        cyan            default
    color signature         green           default
    color attachment        brightyellow    default
    color indicator         brightyellow    default
    color quoted            green           default
    color quoted1           white           default
    color tilde             blue            default
    color tree              red             default

    color body              cyan            default "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
    color body              brightwhite     default "(http|ftp|news|telnet|finger)://[^ \">\t\r\n]*"
    color body              brightwhite     default "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"

    color header            brightmagenta   default ^(Date):
    color header            brightyellow    default ^Subject:

    color body              brightred       default " [;:]-*[)>(<|]" 
    5.2 vim als Editor für die e-mails
    Man ergänze (wegen der "e-mail-netiquette) folgende Zeilen in der ~/.vimrc
    PHP-Code:
    augroup mail
        autocmd
    !
        
    autocmd FileType mail set textwidth=70 wrap nonumber
    augroup END 
    Damit setzt man die anzahl der Zeichen pro Ziele auf 70 Zeichen, sowie deaktiviert Zeilennummerierung, falls diese woanders aktiviert worden ist.

    5.3 abook - Addressbuch
    Zunächst installieren wir abook, falls dies noch nicht installiert sein sollte.
    Code:
    # apt-get install abook
    In der ~/.muttrc füge man nun die schon oben kommentierten Zeilen hinzu:
    PHP-Code:
    set query_command="abook --mutt-query '%s'"
    macro index a     "|abook --add-email\n" 'add sender to abook'
    macro pager a     "|abook --add-email\n" 'add sender to abook' 
    Ersteres erlaubt eine Suche im Addressbuch, zweiteres erlaubt durch betätigen der Taste a, das Hinzufügen des Absenders einer e-mail ins Addressbuch.
    Das Addressbuch durchsuchen kann dann durch die betätigen von Q (grosses q) erfolgen.

    5.4 urlview
    Zunächst auch hier installieren:
    Code:
    # apt-get install urlview
    Durch hinzufügen der folgenden Zeilen in die ~/.muttrc
    PHP-Code:
    macro index \cb   "|urlview\n"
    macro pager \cb   "|urlview\n" 
    kann dan ndurch Ctrl+B die e-mail nach urls "abgescannt" werden, ide dann in einer Liste ausgegen werden. Auswählen mit den Pfeiltasten, und mit Enter wird die ausgewählte Url dann von demjenigen Browser gestartet, der in /etc/alternatives/x-www.browser gestartet. Will man beispielsweise /usr/bin/mozilla dazu verwenden:
    Code:
    # update-alternatives --set x-www-browser /usr/bin/mozilla
    5.5 Anhänge und HTML-Mails
    In diesem Schritt verwenden wir explizit lynx als Browser zum darstellen von HTML-Mails (jeder beliebige Browser sollte natürlich auch funktionieren)
    Zunächst installieren wir also das benötigte Programm
    Code:
    # apt-get install lynx
    Und fügen der (eventuell noch zu erstellenden) Datei ~/.mailcap folgende Zeile an:
    PHP-Code:
    text/html; /usr/bin/lynx -force_html '%s'needsterminaldescription=HTML Textnametemplate=%s.html 
    Nun können html-Mails die als Anhang angefügt werden, mit lynx gelesen werden.

    Ganz analog, kann man nun für das öffnen von beliebigen Attachments vorgehen, beispelsweise noch, zum öffnen von pdf-Files:
    PHP-Code:
    application/pdf; /usr/bin/pdftotext '%s' -; copiousoutputdescription="PDF File"nametemplate=%s.pdf 
    Man beachte, dass dafür aber natürlich pdftotext installiert sein muss, welches sich in xpdf befindet.
    Geändert von carnil (27.11.04 um 10:04 Uhr)

Ähnliche Themen

  1. Komisches T-Online Prob.....
    Von kill_your_Idls im Forum Anbindung an die Aussenwelt
    Antworten: 10
    Letzter Beitrag: 29.12.05, 12:31
  2. Brennen allgemein/nicht unterstützter brenner
    Von Woolf im Forum Anwendungen Allgemein, Software
    Antworten: 16
    Letzter Beitrag: 18.07.04, 19:48
  3. Debian woody - kein Internet
    Von tonal im Forum Anbindung an die Aussenwelt
    Antworten: 16
    Letzter Beitrag: 08.10.02, 10:30
  4. Debain Woody; Ich kann meinen Brenner nicht nutzen!!!
    Von FunkyLemmyMC im Forum stationäre Hardware
    Antworten: 21
    Letzter Beitrag: 10.09.02, 23:22
  5. no seek complete error
    Von pcm im Forum stationäre Hardware
    Antworten: 2
    Letzter Beitrag: 01.06.02, 14:24

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •