PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fetchmail vs. qmail - fette Fehlermeldung



Terwilliger
24.04.02, 15:17
@ all

Hoffe auf eure Hilfe, habe gerade versucht, via fetchmail ne testmail von unserem Smart-Mailhost zu holen, allerdings kam dann bei laufendem qmail folgende Fehlermeldung, die mich sprach- und hilflos macht:



[...]
fetchmail: SMTP connect to localhost failed
fetchmail: can´t raise the listener, falling back to $sendmail
#***fetchmail: MDA exited abnormally or returned nonzero status
not flushed
[...]


Das liest sich für mich so, als wenn fetchmail den qmail zwar als MDA erkennt, qmail aber irgendwie nicht richtig funktioniert. Ich weiss nicht mehr weiter und bitte um Help. Danke.
:eek:

root@snoopy...
24.04.02, 15:56
Wie ist denn Deine Rechnerkonfiguration, welches Distribution, setzt Du ein. Wieso läuft Sendmail, wenn Du doch qmail als MDA einsetzt, etc... und wie sieht Deine .fetchmailrc aus.

Gruß,
Sven

thorwin
25.04.02, 15:33
qmail akzeptiert keine Mails von localhost.

Hast Du mal ein telnet localhost 25 versucht?

Der Fehler liegt IMHO in der Konfiguration des tcpservers.

AFAIK läuft hier übrigens kein sendmail, aber fetchmail versucht nach erfolgloser Zustellung via SMTP automatisch die Message nach sendmail zu pipen.

llap,
Thorwin

Terwilliger
26.04.02, 09:28
hi!

Meine Konfiguration: Suse Linux 7.2 auf einem AMD K6-2, 2 Gigs HD, 64 MB Ram, 3 NICs (die auf ohne Probs laufen).

Sendmail ist bei mir nicht installiert, daran kann es also nicht liegen.
Beim "telnet localhost 25" kommt bei mir nur ein connection refused, obwohl die Firewall deaktiviert ist :eek:.

Wie kann ich fetchmail dazu bringen, die Mails an qmail zu geben anstatt an sendmail?

meine .fetchmailrc


set postmaster
set nobouncemail
set no spamresponse
set properties ""
poll xxx.xxx.xxx.xxx via mail.meinefirma.de
with proto POP3 and options no dns
user 'terwilliger@meinefirma.de' there with password 'xxxx' is 'terwilliger@meinefirma.de" here warnings 3600
antispam 571 550 501 554

Das Etablieren der Verbindung scheint prima zu klappen, bloss qmail macht nicht weiter... oder?! Arghh, diese Noobie-Probleme :ugly:

[WCM]Manx
26.04.02, 10:34
Hi!

Du bekommst also bei telnet localhost keine Verbindung.
Das sollten wir als erstes angehen:

Wieder die Frage wie hast Du qmail installiert (ingendeine Anleitung verwendet?) bzw wie startest Du qmail (über die daemontools, oder anders)?

Überprüfe als erstes mit "netstat -na --ip" ob am Port 25 gelauscht wird.
Sollte so u.a. aussehen:


tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN


Wenn das der Fall ist, posten.
Wenn nicht, qmail starten.

Dann schauen wir weiter!

Grüße

Manx

Terwilliger
26.04.02, 10:56
@ Manx

Du bist mal wieder superschnell beim Antworten! Danke!

Richtig, qmail starte ich über daemontools, meine Anleitung ist eigentlich keine, sondern setzt sich aus mehreren einzelnen zusammen ;)

laut netstat-Befehl wird an diesem Port gelauscht :) :cool: ..eben ausprobiert.

[WCM]Manx
26.04.02, 11:13
Hi!

Nochmal um Klarheit zu haben.
Du bekommst lokal auf dem Mailserver bei telnet auf Port 25 keine Verbindung, richtig?

Wenn Du qmail/vpopmail/daemontools in Kombination verwendest, hast Du ein supervise-Startscript u-a für den Qmail-SMTP.

Bei mir in /var/qmail/supervise/qmail-smtp/run:


QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/tcpserver -H -R -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1


Das fett dargestellte ruft die Relaydatenbank des tcpservers auf.
In dieser Datei sollte folgende Zeile drinnen sein, die das Relaying des localhost erlaubt: /home/vpopmail/etc/tcp.smtp


127.0.0.:allow,RELAYCLIENT=""


Schau mal ob das so ist und ob die Datei /home/vpopmail/etc/tcp.smtp.cdb existiert

Terwilliger
26.04.02, 11:35
@ manx

Die Datei tcp.smtp.cdb existiert in dem von dir angegebenen Dir!
Ein Supervise-script habe ich nicht.. brauch ich das und was macht das?
Telnet localhost 25 geht auf einmal auch, hmmmm..

Ich habe noch ein wenig rumexperimentiert und fetchmail gibt mir mittlerweile folgendere "bessere" Meldung:


[...]
fetchmail: POP3< +OK 731 octets
reading message 1 of 1 (731 octets)
fetchmail: SMTP< 220 # eigener Name des Mailservers ESMTP
fetchmail: SMTP> EHLO localhost
fetchmail: SMTP< 250-# eigener Name des Mailservers
fetchmail: SMTP< 250-PIPELINING
fetchmail: SMTP< 250 8BITMIME
fetchmail: SMTP> MAIL FROM:<terwilliger@meinefirma.de> BODY=7BIT
fetchmail: SMTP< 250 ok
fetchmail: SMTP> RCPT TO: <terwilliger@meinefirma.de>
fetchmail: SMTP< 250 ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 go ahead
#***fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 ok 10476873324 qp 4820
flushed
fetchmail: POP3> DELE 1\r
fetchmail: POP3< +OK msg deleted
fetchmail: POP3> QUIT\r
fetchmail: POP3< +OK POP3 Server saying Good-bye
fetchmail: SMTP> QUIT
fetchmail: SMTP< 221 # eigener Name des Mailservers
fetchmail: normal termination, status 0
Done.


Wenn ich das richtig verstehe, wird das Postfach geöffnet, die Mail gefunden...aber wo wird sie nun hingespeicht bzw. zwischengespeichert oder wird sie denn überhaupt geholt? Was hat das mit dem 250# eigener Name des Mailservers zu bedeuten?

[WCM]Manx
26.04.02, 11:50
Hi!

Ad Supervise-Script:
Diese Scripten dienen zum Starten und zur Überwachung der Qmail-Prozesse. Sind aber nicht erforderlich, Du kannst Qmail auch über die /etc/init-Scripts starten.

Hab mit fetchmail selber noch wenig gemacht.
Da Du vpopmail als POP3 verwendest, sind Deine Domain bzw. die Benutzer real (/etc/passwd Mailsverzeichnis in $HOME) oder virtuell?

Wir sollten uns vielleicht darauf konzentrieren, dass vorerst SMTP und POP3 einwandfrei funktionieren.

Grüße

Manx

Terwilliger
26.04.02, 12:07
@ Manx

die Domain und die User sind virtuell denke ich mal. Also mein Mailserver soll die Mails von seinem Smartmailhost holen und im Userpostfach ablegen. Eine Testdomain/ein Testpostfach habe ich mit vpopmail schon angelegt, zu finden unter /home/vpopmail/domains/meinefirma.de/terwilliger/Maildir/...

Allerdings habe ich meine Testdomain genau so genannt wie mein Smartmailhost heisst. Der heisst "mail.firmenname.de", Email-Adressen heissen "terwilliger@firmenname.de". Und meine angelegte Testdomain heisst halt "firmenname.de" bei vpopmail.

Habe aber in /var/qmail/control/virtualdomains folgendes eingetragen:


#jede Mail von mail.firmenname.de (unser Smarthost im internet) an firmenname.de
mail.firmenname.de:firmenname.de

Ist das richtig?? Oder kann das zu Problemen führen?

Dann soll man mit seinem MUA (bei uns Outlook Express) von meinem Mailserver holen...fertig. Und versenden soll über den gleichen Weg gehen. Man schreibt im MUA, sendet es an meinen Mailserver, und der gibt das dann alle paar Minuten weiter an unseren Smartmailhost.

[WCM]Manx
26.04.02, 12:27
o.k!

Virtuelle Domain und User sind ja schon mal angenehm (hab's selber auch so!). Wenn ich eine Domain anlege (mit vadddomain) wird der Eintrag in /var/qmail/control/virtualdomains automatisch von vpopmail gemacht.

Gehen wir nochmal die Controlfiles durch:

/var/qmail/control/me:
fully qualified Domainname Deines Mailservers: mail.firmenname.de

/var/qmail/control/defaultdomain:
firmenname.de

/var/qmail/control/locals
mail.firmenname.de

/var/qmail/control/rcpthosts
mail.firmenname.de
firmenname.de

Teste die Server folgendermaßen:



mail:~ # telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.xxx.at ESMTP
mail from: test@test.com
250 ok
rcpt to: postmaster
250 ok
data
354 go ahead
Dies ist ein Test!
.
250 ok 1019816376 qp 14411
quit
221 mail.xxx.at
Connection closed by foreign host.
mail:~ # telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK <14430.1019816390@mail.xxx.at>
user postmaster
+OK
pass Dein Passwort
+OK
list
+OK
1 325

.
retr 1
+OK
Return-Path: <test@test.com>
Delivered-To: postmaster@xxx.at
Received: (qmail 14425 invoked by uid 505); 26 Apr 2002 10:19:37 -0000
Delivered-To: postmaster@xxx.at
Received: (qmail 14416 invoked by uid 505); 26 Apr 2002 10:19:36 -0000
Received: from unknown (127.0.0.1)
by 0 with SMTP; 26 Apr 2002 10:19:25 -0000
Dies ist ein Test!

.
quit
+OK
Connection closed by foreign host.


Wenn das so funzt, ist mit SMTP/POP alles o.k!

Manx

[WCM]Manx
26.04.02, 12:58
Werd' mich Abends wieder melden!

Dann können wir hoffentlich das mit dem Smarthost beim Versenden angehen.
Punkto Qmail/fetchmail wende Dich an rabenkind hier im Forum, ist ein Spezialist dafür ;) .

Grüße

Manx

Terwilliger
29.04.02, 09:31
@Manx und Rabenkind

ok. Der qmail SMTP-Server scheint zu gehen, da die Fehlermeldung von Fetchmail "can´t raise the listener" nicht mehr und qmail auch problemlos startet. Hier dazu nochmal der Fetchmail-Status:


[...]
fetchmail: POP3< +OK 731 octets
reading message 1 of 1 (731 octets)
fetchmail: SMTP< 220 # eigener Name des Mailservers ESMTP
fetchmail: SMTP> EHLO localhost
fetchmail: SMTP< 250-# eigener Name des Mailservers
fetchmail: SMTP< 250-PIPELINING
fetchmail: SMTP< 250 8BITMIME
fetchmail: SMTP> MAIL FROM:<terwilliger@meinefirma.de> BODY=7BIT
fetchmail: SMTP< 250 ok
fetchmail: SMTP> RCPT TO: <terwilliger@meinefirma.de>
fetchmail: SMTP< 250 ok
fetchmail: SMTP> DATA
fetchmail: SMTP< 354 go ahead
#***fetchmail: SMTP>. (EOM)
fetchmail: SMTP< 250 ok 10476873324 qp 4820
flushed
fetchmail: POP3> DELE 1r
fetchmail: POP3< +OK msg deleted
fetchmail: POP3> QUITr
fetchmail: POP3< +OK POP3 Server saying Good-bye
fetchmail: SMTP> QUIT
fetchmail: SMTP< 221 # eigener Name des Mailservers
fetchmail: normal termination, status 0
Done.

Manx, ich würde gerne nochmal die einzelnen qmail-Controlfiles durchsprechen...

/var/qmail/control/me:
Du schriebst, darin steht der voll qualifizierte Domainname von meinem Server. Dazu ist aber noch was zu meinem Verständnis zu klären. Ist dieser Name beliebig für die Emails, die hier ankommen sollen oder muss er genauso heissen wie der Smarthost? Zur Verdeutlichung: mein Smarthost, der die Mails für meine Firma aufbewahrt (bis sie gepopt oder gefetcht werden), ist über http://mail.firmenname.de zu erreichen, Emails, die bei diesem Firma und bei unseren Mitarbeitern ankommen sollen, heissen blabla@firmenname.de. Muss meine /var/qmail/control/me nun auch mail.firmenname.de heissen, damit sie hierher gefetcht wird oder ist der Name beliebig?

/var/qmail/control/defaultdomain:
Muss hier die Domain rein, von der die Emails geholt werden soll, sprich http://mail.firmenname.de (dies ist die URL unseres Smarthosts)?

/var/qmail/control/locals:
Ich vermute, hier steht die von mir erstellte Domain drinnen, ist die beliebig und kommen die mails für blabla@firmenname.de auch hier an, selbst wenn die Domain etwa test.de heisst?

/var/qmail/control/rcpthosts:
Hier müssen bestimmt die Domains rein, für die Emails entgegengenommen werden sollen...oder?

/var/qmail/control/virtualdomains:
Wird hier das "Mailrouting" eingetragen? Also, dass alle Mails von unserem Smarthost http://mail.firmenname.de zu meiner Domain, z.B. test.de kommen? Oder ist diese Konfiguration überflüssig, wenn ich die Mails nur fetchen will mit fetchmail?

Mein Linuxmailserver, den ich hier bei mir in der Firma gerade versuche aufzubauen, ist zwar permanent mit dem I-net verbunden (per DSL und dynamischer IP-Vergabe), übernimmt auch Routing- und Proxyfunktionen, soll aber Emails lediglich fetchen, um hier den Email-Verkehr zu zentralisieren (also Zwischenspeicherung der Mails auf meinem Mailserver, nachdem sie von unserem Smarthost gefetcht wurden). Hoffe bin auf dem richtigen Weg.

Zu meiner Installation:
- qmail 1.03 über daemontools gestartet
- aufgesetzter qmail-Admin 1.0, der prima funktioniert auf dem ebenfalls laufenden Apache
- Vpopmail als Pop3-Server, mit dem qmail-Admin kann ich User und Postfächer anlegen innerhalb der Domains, die ich mit mit Vpopmail erstellt habe, z.B. in /home/vpopmail/domains/test.de
- Fetchmail als Mailholer von unserem Smartmailhost

Wie sage ich aber nun Fetchmail bzw. Vpopmail, dass es die gefetchten Emails von unserem Smarthost (http://mail.firmenname.de) in dem Verzeichnis /home/vpopmail/domains/test.de/Userblabla/Maildir ablegt bzw. zwischenspeichert, damit sie dann wieder abrufbar sind per Pop3 von den Email-Clients der einzelnen User in meiner Firma? Oder ist das gar nicht nötig?

Jungs, ich bin euch voll dankbar, dass ihr mir helft!

[WCM]Manx
29.04.02, 10:23
Schaun wir mal :)

/var/qmail/control/me
Fully qualified domainname: der gleiche wie der Smarthost ist eher schlecht (zwei Rechner mit gleichem Namen). Nenne ihn z.B mail1.firmenname.de und passe auch alles nötige im Linux an (HOSTNAME, RESOLVE.CONF damit alles ordentlich ist)

/var/qmail/control/defaultdomain:
Nur die Domain (alles hinter dem @ in der Mailaddresse) => firmenname.de

/var/qmail/control/locals:
Hier werden die Mailadressen angegeben, die Qmail als lokal betrachtet.
mail1.firmenname.de (fimenname.de braucht man nicht angeben, bei mir zumindest nicht). Aus dem Grund, wenn das Linuxsystem auf dem Qmail läuft an root eine Mail schickt, geht diese nicht an root@firmenname.de sondern nur an root und der fully qualified Domainname des Rechners wird angehängt, sprich root@mail1.firmenname.de. Damit diese als lokal angesehen wird, angeben. (Könnte auch funtionieren, wenn var/qmail/control/locals nicht existiert, dann nimmt er das "me" File.

/var/qmail/control/rcpthosts:
Gibt die domains an für die Qmail Mails akzeptiert: =>
mail.firmenname.de
firmenname.de
... ansonsten gibt's der Fehler ("Sorry, that domain isn't in my list of
allowed rcpthosts")

/var/qmail/control/virtualdomains:
Gar nicht's eintragen, macht vpopmail für Dich!

Ich habe bei mir in den 3 notwendigen ".qmail-" Files (.qmail-root, postmaster und Mailerdaemon) eine komplette Mailadresse (nämlich postmaster@firmenname.de) angegeben.

Ich würde die Domain und die User alle virtuell anlegen.
Siehe auch: http://www.inter7.com/vpopmail/vpopmail.html
... dann funzt qmailadmin problemlos!

Wichtig vielleicht noch für den tcpserver, dass er keine Namen auflöst:

/var/qmail/supervise/qmail-smtpd/run


#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 2000000 \
/usr/bin/tcpserver -H -R -P -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1


/var/qmail/supervise/qmail-pop3d/run


#!/bin/sh
exec /usr/bin/tcpserver -P -H -l 0 -R 0 pop3 \
/var/qmail/bin/qmail-popup mail1.xxx.de /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1


... das fette ist ein "dash el zero" -l 0

So long!

Manx

[WCM]Manx
29.04.02, 10:30
ad fetchmail: so ähnlich vielleicht:



poll mail.firmenname.de with proto POP3
localdomains firmenname.de
no envelope
no dns
user "username" with password "deinPasswd" is
user1
user2
user3
here


Nicht getestet, entnommen aus:
"Running Qmail" by Richard Blum
http://images-eu.amazon.com/images/P/0672319454.01.MZZZZZZZ.jpg

Grüße

Manx

Terwilliger
29.04.02, 11:29
hi manx,

ich werde versuchen, dass von dir angebene umzusetzen, vielen Dank! Was hat es mit dem Supervise-Script für qmail auf sich? Kannst du deines posten, wenn es mir nützen könnte?

[WCM]Manx
29.04.02, 11:49
Hi!

/var/qmail/supervise/qmail-smtp/run


#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 2000000 \
/usr/bin/tcpserver -H -R -P -l 0 -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

/var/qmail/supervise/qmail-send/run


#!/bin/sh
exec /var/qmail/rc

/var/qmail/supervise/qmail-pop3d/run


#!/bin/sh
exec /usr/bin/tcpserver -P -H -l 0 -R 0 pop3 \
/var/qmail/bin/qmail-popup mail1.xxx.de /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1


Sind die rcscripts von http://www.treiber-forum.de/linux/berichte/q6.php nur das vorher gepostete -l 0 kommt hinzu, damit der tcpserver nicht versucht seinen Namen aufzulösen!!

Manx

Terwilliger
29.04.02, 13:44
danke danke danke,

werde alles von dir erwähnte umsetzen und melde mich spätestens Mittwoch wieder hier im thread!

Terwilliger
24.05.02, 10:57
@ Manx

Bin wieder am Rechner und will dich mal über den letzten Stand der Dinge informieren nach meinen (halbwegs) erfolgreichen Experimenten nach deiner Anleitung.

SMTP-Server (qmail) läuft, nimmt Nachrichten von den MUA´s (Outlook Express) an und sortiert diese in sein Spool- bzw. Queue-Verzeichnis /var/qmail/queue/mess/ZahlXY/.

Pop3 Client (fetchmail) läuft und legt die Emails ebenfalls im Queue-Verzeichnis von qmail ab (/var/qmail/queue/mess/ZahlXY/).

Pop3 Server (vpopmail) läuft ebenfalls, mittels MUA (Outlook Express) holt man seine Mails aus /home/vpopmail/domains/mail1.firmenname.de/terwilliger/maildir/new/. Um den Account mit dem MUA abzufragen, muss ich in diesem terwilliger@mail1.firmenname.de als Accountname einstellen nebst Passwort.

--------------------------------------------------------------------------
Soweit alles schön. Nun aber folgendes Problem:

Hole ich Mails mit fetchmail, landen diese automatisch im Queue-Verzeichnis von qmail (s.o.). Damit ich sie aber mittels MUA poppen (;)) kann, müssen die Mails ja im "/new"-Verzeichnis von vpopmail stehen, sonst kommt nichts an!

Wie bringe ich also qmail oder welchem Proggi auch immer bei, die Mails entsprechend am Empfängernamen zu erkennen und im entsprechenden "/new"-Verzeichnis von vpopmail abzulegen, damit sie sich der MUA holen kann?

Wenn ich weiss wie ich das mache (oder umgehe), hab ich es glaube ich geschafft.

[WCM]Manx
24.05.02, 12:08
Hi!

Poste mal Deine fetchmail Konfigurationsdatei!
Bin abends wieder im Forum :)

Grüße

Manx

deepinpowder
24.05.02, 12:45
Original geschrieben von [WCM]Manx
ad fetchmail: so ähnlich vielleicht:



poll mail.firmenname.de with proto POP3
localdomains firmenname.de
no envelope
no dns
user "username" with password "deinPasswd" is
user1
user2
user3
here


Grüße

Manx

Bei mir funktioniert das leider nicht. Die Mails werden nur an den ersten User übergeben ?

Funktioniert dieser Code bei einem von euch ?

Gruß

Deepinpowder

Terwilliger
24.05.02, 13:15
Hier hast du sie:


set postmaster "postmaster"
set nobouncemail
set no spambounce
set properties ""
poll xxx.xxx.xxx.xxx
with proto POP3 and options no dns
user 'terwilliger@firmenname.de' there with password 'xxxxxxxxx' is terwilliger@firmenname.de here warnings 3600
antispam 571 550 501 554


Du, kann es sein, dass ich dann schreiben muss "...is terwilliger@mail1.firmenname.de here..." ????

Anmerkung:
habe das eben mal ausprobiert, leider ohne Erfolg. Meine .fetchmailrc sieht jetzt also so aus:



set postmaster "postmaster"
set nobouncemail
set no spambounce
set properties ""
poll xxx.xxx.xxx.xxx
with proto POP3 and options no dns
user 'terwilliger@firmenname.de' there with password 'xxxxxxxxx' is terwilliger@mail1.firmenname.de here warnings 3600
antispam 571 550 501 554



Irgendwie muss ich es schaffen, dass fetchmail/qmail eingehende Mails im entsprechenden Userverzeichnis unter vpopmail speichert (also etwa /home/vpopmail/domains/mail1.firmenname.de/terwilliger/Maildir/new/)... weil nur von dort kann ich sie mit einem MUA wie Outlook Express poppen.

Ich denke mal, dass qmail selbst als smtp server dafür zuständig ist... Kannst du mir helfen Manx?

Ausserdem weiss ich die Supervise-Scripts, die du mir gepostet hast, nicht richtig einzusetzten. Kannst du mir die auch noch erläutern?