fetchmail-Problem

Dieses Thema im Forum "Anwendungen" wurde erstellt von Caris, 10.03.2003.

  1. #1 Caris, 10.03.2003
    Zuletzt bearbeitet: 10.03.2003
    Caris

    Caris Jungspund

    Dabei seit:
    18.02.2003
    Beiträge:
    20
    Zustimmungen:
    0
    Ich habe ein Problem mit meiner MTA-Konfiguration unter SuSE 8.1 mit Yast2.
    Ich habe den Zugang wie beschrieben unter http://sdb.suse.de/de/sdb/html/fhassel_yast2_mail.html
    eingerichtet und meine Mail werden auch tadelos von sendmail versendet, jedoch holt fetchmail meine Mail nicht ab. Weiss jemand von euch Rat? Ich habe den obenstehenden ARtikel genau befolgt, aber ich habe einen DSL-Flat-Anschluss also eine permanente Verbindung.
    Ich will nicht jedemal das poll-tcpip- skript aufrufen müssen.
    Hilfe?(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. devilz

    devilz Pro*phet
    Administrator

    Dabei seit:
    01.05.2002
    Beiträge:
    12.244
    Zustimmungen:
    0
    Ort:
    Hessen
    Fehlermeldungen oder sonstiges ?
     
  4. #3 muaddib2, 10.03.2003
    muaddib2

    muaddib2 Kommandozeilenenthusiast

    Dabei seit:
    17.02.2003
    Beiträge:
    15
    Zustimmungen:
    0
    Ort:
    Ostfriesland
    Habe ich das richtig verstanden? Fetchmail holt die Mail zwar ab, nur nicht automatisch, sondern nur immer dann, wenn Du dieses Script startest?

    Wenn das der Fall ist, dann müssen wir nur noch den Scheduler Cron entsprechend konfigurieren, damit er beispielsweise alle 15 Minuten das Script einmal startet.

    Kannst Du bitte einmal den Inhalt dieses Scripts hier posten?
    Falls Fetchmail die Mails nicht abholt, benötige ich das Script auch, wenn ich Dir sagen soll, was da kaputt ist.

    Ich warte erstmal die Antwort ab.
     
  5. ookami

    ookami Haudegen

    Dabei seit:
    06.07.2002
    Beiträge:
    543
    Zustimmungen:
    0
    und das ist auch nicht mal nötig :)
    Code:
    set daemon 180
    
    und schon läuft fetchmail als daemon

    cu
     
  6. #5 muaddib2, 10.03.2003
    muaddib2

    muaddib2 Kommandozeilenenthusiast

    Dabei seit:
    17.02.2003
    Beiträge:
    15
    Zustimmungen:
    0
    Ort:
    Ostfriesland
  7. ookami

    ookami Haudegen

    Dabei seit:
    06.07.2002
    Beiträge:
    543
    Zustimmungen:
    0
    ja, das sollte so richtig sein

    cu
     
  8. Caris

    Caris Jungspund

    Dabei seit:
    18.02.2003
    Beiträge:
    20
    Zustimmungen:
    0
    Erstmal danke für euer Antworten .Mal sehen was sich machen läßt.

    Anbei für muadib das Skript.

    #!/bin/bash
    #
    # /etc/ppp/poll.tcpip
    #
    # Script for polling mail and news, setting system
    # time, and sending mails over temporary TCP/IP connections.
    #
    # Author: Werner Fink <werner@suse.de>
    #

    #
    # Check our lock file
    #
    if test -e /var/run/poll.lock ; then
    running=false
    read lpid < /var/run/poll.lock
    for l in /proc/$lpid/fd/* ; do
    test -L $l || continue
    test $0 -ef $l && running=true
    done
    test "$running" = "true" && exit 0
    unset l lpid running
    fi
    trap 'echo' SIGHUP SIGINT SIGQUIT
    trap 'rm -f /var/run/poll.lock; exit 1' SIGTRAP SIGBUS SIGKILL SIGPIPE SIGTERM
    trap 'rm -f /var/run/poll.lock; exit 0' EXIT
    echo $$ > /var/run/poll.lock

    # Tell system what we're doing
    logger -t poll.tcpip -p mail.notice " Starting mail and news send/fetch"

    #
    # Check resources and settings
    #

    #
    # Time to get a stable connenction
    #
    sleep 5

    #
    # Now set system time if we have some NTP servers
    # and no running xntp.
    #
    while true ; do
    set -- $(runlevel)
    test -e /etc/init.d/rc${2}.d/S*xntpd && break
    test -x /usr/sbin/ntpdate || break
    checkproc /usr/sbin/xntpd &> /dev/null && break
    /usr/sbin/rcxntpd ntptimeset
    break
    done

    #
    # Do we get mails via UUCP over TCP/IP?
    # Note that we only support taylor configuration.
    # We seek for the available systems which are
    # connected with TCP/IP to do a UUCP file transfer.
    #
    while true ; do
    test -x /usr/lib/uucp/uucico || break
    test -r /etc/uucp/call || break
    test -r /etc/uucp/sys || break
    systems=""
    while read sys login passwd rest ; do
    case "$sys" in
    \#|"") continue ;;
    *) systems="$systems $sys"
    esac
    done < /etc/uucp/call
    for sys in $systems ; do
    type=$(sed -n "
    /^system[[:space:]]\+$sys/,/^\(system\|\$\)/ {
    s/^port\W\+\(\w\+\)\$/\1/p
    }" < /etc/uucp/sys)
    test "$type" = tcp || continue
    /usr/lib/uucp/uucico -c -D -S $sys
    done
    break
    done

    #
    # Do we get mails with fetchmail over pop3/imap?
    # We support only a system wide configuration
    # file /etc/fetchmailrc.
    #
    while true ; do
    test -x /usr/bin/fetchmail || break
    test -r /etc/fetchmailrc || break
    /usr/bin/fetchmail -f /etc/fetchmailrc
    break
    done

    #
    # Do we get news with fetchnews?
    #
    while true ; do
    test -x /usr/sbin/fetchnews || break
    test -s /etc/leafnode/config || break
    test -e /var/lock/news/fetchnews.lck && break
    /usr/sbin/fetchnews
    break
    done

    #
    # Let's throw our mails out here. This is done as the last
    # point to avoid mail loops.
    #
    /usr/sbin/sendmail -q

    # Tell system what we're done
    logger -t poll.tcpip -p mail.notice " Done mail and news send/fetch"
    #
    exit 0


    Eine Frage noch: Wenn /root/.fetchmailrc nicht existiert, muss ich das dann anlegen?
     
  9. #8 tomvomland, 11.03.2003
    tomvomland

    tomvomland Tripel-As

    Dabei seit:
    27.08.2002
    Beiträge:
    223
    Zustimmungen:
    0
    Ort:
    Korschenbroich (Kaff bei D-dorf)
    Definitiv nicht.
    Wie aus dem script ersichtlich ist, wird für fetchmail die /etc/fetchmailrc als Config-Datei vorgegeben. Das ist auch der Standard, wenn fetchmail als Deamon läuft, soweit ich weiss.
    Funktioniert Fetchmail denn, wenn du als root "fetchmail -v -c /etc/fetchmailrc" machst? ( -v steht übrigens für verbose zum debuggen)

    cu
    tom
     
  10. #9 muaddib2, 11.03.2003
    Zuletzt bearbeitet: 11.03.2003
    muaddib2

    muaddib2 Kommandozeilenenthusiast

    Dabei seit:
    17.02.2003
    Beiträge:
    15
    Zustimmungen:
    0
    Ort:
    Ostfriesland
    Danke Caris,
    Ich weiss nun das, was ich wissen wollte, nämlich, wie der Aufruf funktioniert und wo die fetchmailrc versteckt ist.

    Das ist übrigens die Stelle, woran tomvorland und ich das sehen können:
    tomvorland:
    Muss er nicht fetchmail -c -v -f /etc/fetchmailrc eintippern?

    Caris:
    -c steht übrigens für check only. Fetchmail holt dabei nichts ab.
    Hinter -f steht die Position und der Name der Konfigurationsdatei

    Wenn ersteres klappt, kannst Du
    fetchmail -a -v -f /etc/fetchmailrc
    eingeben. Dann sollte er die EMails abholen.

    Wenn es nicht klappt, würde ich mir nochmal gerne den Inhalt der Datei /etc/fetchmailrc anschauen.
     
  11. Caris

    Caris Jungspund

    Dabei seit:
    18.02.2003
    Beiträge:
    20
    Zustimmungen:
    0
    Also,wenn ich tomvonlands Vorschlage mache passiert folgendes:

    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol auto) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll started
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol IMAP) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll started
    fetchmail: couldn't find canonical DNS name of /etc/fetchmailrc
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol IMAP) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll completed
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol POP3) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll started
    fetchmail: couldn't find canonical DNS name of /etc/fetchmailrc
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol POP3) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll completed
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol POP2) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll started
    fetchmail: couldn't find canonical DNS name of /etc/fetchmailrc
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol POP2) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll completed
    fetchmail: 5.9.13 querying /etc/fetchmailrc (protocol auto) at Tue, 11 Mar 2003 10:04:17 +0000 (UTC): poll completed
    fetchmail: normal termination, status 11

    muadib dein vorschlag funktioniert, aber ist fetchmail den überhaupt irgendwie aktiv? Das Programm muss doch in regelmäßigen Abständen selber Post holen. Zumindest, wenn ich den Mail-Client aufrufe. Benutze Kmail und Korn als Notifier.
     
  12. #11 muaddib2, 11.03.2003
    Zuletzt bearbeitet: 11.03.2003
    muaddib2

    muaddib2 Kommandozeilenenthusiast

    Dabei seit:
    17.02.2003
    Beiträge:
    15
    Zustimmungen:
    0
    Ort:
    Ostfriesland
    Deswegen habe ich auch ja eingeworfen, dass dazwischen ein "-f" fehlt. fetchmail hat dadurch versucht, einen Server namens "/etc/fetchmailrc" im Internet zu finden.

    Fetchmail kann als Dämon ablaufen und dann in regelmässigen Abständen Mails abholen und zwar mittels des oben beschriebenen Eintrags "set daemin 180".
    Eine andere Möglichkeit besteht darin, dem cron-Daemin mitzuteilen, dass er zeitgesteuert das fetchmail-script startet.

    Das folgende Beispiel zeigt das zeitgesteuerte Abholen der E-Mails mit dem selbstgeschriebenen Script "getmail"

    Du erstellt als Root eine Datei, die meinetwegen crontab.conf heisst:
    Code:
    SHELL=/bin/sh
    MAILTO=mailadmin
    10 6-22 * * 1-5 /root/getmail
    40 6-22 * * 1-5 /root/getmail
    25 6-22/2 * * 6-7 /root/getmail
    
    Die gestartete Shell ist /bin/sh, Durchführung des Prozesses wird an den user mailadmin gesandt
    Die Mails werden von Montag bis Freitag von 6-22 Uhr um jeweils X Uhr 10 und um X Uhr 40 abgeholt.
    Am Wochenende werden die Mails nur alle 2 Stunden einmal geholt.

    Die Crontab.conf wird mit dem Befehl
    Code:
     crontab -u root crontab.conf 
    aktiviert für den Benutzer root.

    Getmail sieht dann so aus:
    Code:
    echo Fetchmail gestartet.
    echo --------------------------------------------- >>/var/log/fetchmail 2>&1
    date >>/var/log/fetchmail 2>&1
    ping -c 4 mail.nordwest.net >>/var/log/fetchmail 2>&1
    killall fetchmail
    fetchmail -a -v >>/var/log/fetchmail 2>&1
    
    Erläuterung:
    Ich schreibe die Logs in eine eigene Logdatei rein. Ansonsten schreibt fetchmail alles in die allgemeine Syslog.
    Bevor es losgeht, setze ich einen Ping ab. Ich hatte Probleme damit, dass die Leitung ins Internet nicht schnell genug aufgebaut wurde.
    Dann kille ich den letzten Fetchmail-Prozess. Zwei Prozesse gleichzeitig funktionieren nicht. Wenn man dann die Abholzeiten zu niedrig setzt, kann es passieren, dass eine Mailbombe den EMail-Empfang zum Erliegen bringt, weil der Abholprozess der Mail ja immer wieder kurz vor der Übertragung gekillt wird und neu beginnt. Da habe ich noch keine Lösung drauf. Aber ich analysiere gerade das Script von SuSE. Da scheint mir eine Lösung drin zu stecken.
    Schliesslich der eigentlich Fetchmail-Aufruf.
     
  13. #12 tomvomland, 13.03.2003
    tomvomland

    tomvomland Tripel-As

    Dabei seit:
    27.08.2002
    Beiträge:
    223
    Zustimmungen:
    0
    Ort:
    Korschenbroich (Kaff bei D-dorf)
    Hi

    Du hast natürlich recht.
    Ich habe das -c mit dem -f verwechselt.

    @Caris: Das -c darfst Du also garnicht eingeben, denn sonst siehst Du ja nicht, was passiert, wenn fetchmail versucht die mails zu holen.
    Also: Um erstmal zu checken ob fetchmail ünerhaupt funtioniert:

    fetchmail -v -f /etc/fetchmailrc

    Wenn das geht, kommt muaddib2's Howto als nächstes.

    cu
    tom
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. Caris

    Caris Jungspund

    Dabei seit:
    18.02.2003
    Beiträge:
    20
    Zustimmungen:
    0
    Also erstmal Dank an Alle für die schnelle Hilfe.

    Hab das Problem, dann doch noch anders gelöst, denn die SuSE sind ja doch nicht so schlecht wie ich immer denke.Es liegt halt an der Intelligenz des Anwenders.

    Unter /usr/share/doc/packages/fetchmail/Readme.SUSE
    findet sich folgendes Skript:

    If you want to fetch mail periodically, you can start fetchmail as a daemon
    using the following init script:

    #! /bin/sh
    # Copyright (c) 1996-2000 SuSE GmbH Nuremberg, Germany. All rights reserved.
    #
    # Authors: Klaus Franken
    # Björn Jacke
    #
    # /etc/init.d/fetchmail
    #
    # please edit /etc/fetchmailrc and make a chmod 600 /etc/fetchmailrc
    #
    ### BEGIN INIT INFO
    # Provides: fetchmail
    # Required-Start: $network
    # Required-Stop:
    # Default-Start: 3 5
    # Default-Stop:
    # Description: run fetchmail in daemon mode
    ### END INIT INFO

    . /etc/rc.config
    return=$rc_done

    case "$1" in
    start)
    echo -n "Starting fetchmail-daemon"
    /usr/bin/fetchmail -d 900 -a -f /etc/fetchmailrc -L /var/log/fetchmail 2>&1 || return=$rc_failed
    echo -e "$return"
    ;;
    stop)
    echo -n "Shutting down fetchmail-daemon"
    /usr/bin/fetchmail -quit || return=$rc_failed
    echo -e "$return"
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
    esac

    exit 0


    The file to which the -f option points must be the .fetchmailrc of the user who
    has to fetch the mail.
    Put the script in /etc/init.d/ and make it executable:

    cd /etc/init.d/
    chmod +x fetchmail

    and finally run "insserv".

    Your SuSE Team

    Was soll man da noch sagen, RTFM!!!!
    Habe dann die Zeile ./etc/rc.config gegen /etc/rc.status ausgetauscht,weil rc.config gibt nicht mehr und voila! Alles Läuft zu meiner Zufriedenheit.

    Allen nochmal herzlichen Dank!
     
  16. #14 Siggi, 28.03.2007
    Zuletzt bearbeitet: 28.03.2007
    Siggi

    Siggi Grünschnabel

    Dabei seit:
    28.03.2007
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo zusammen!
    Ich bin per Google auf diesen Thread gestoßen. Ich habe das Problem, dass mein fetchmail-daemon immer nur mit einem Intervall von 600 Sekunden läuft, obwohl "set daemon 60" in der /etc/fetchmailrc steht. Testweise habe ich diesen Eintrag auch in der /root/.fetchmailrc und in der /home/fetchmail/.fetchmailrc (der fetchmail-daemon läuft unter diesem Benutzernamen) gesetzt.

    /etc/fetchmailrc
    Leider ohne Ergebnis:

    Fetchmail per Cron ausführen zu lassen, fände ich nicht gut, da der Daemon ja bereits läuft...

    Betriebssystem ist OpenSuSE 10.2.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    So, dann will ich meine Frage mal selbst beantworten :D

    Dieser Wert von 600 Sekunden ist unter /etc/sysconfig/fetchmail und /etc/rc.d/fetchmail fest eingetragen. In beiden Dateien findet man einen Parameter namens "FETCHMAIL_POLLING_INTERVAL" und den kann man beliebig anpassen. Fetchmail neu starten und gut :)

    Danke euch allen :D
     
Thema:

fetchmail-Problem