PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mail-Relay



zeromancer1972
28.01.07, 17:01
Hallöchen!

Ich habe gestern meinen Windows-Server geplättet und auf Ubuntu umgestellt.
Vorher hatte ich folgendes Konstrukt:
Lotus Domino als Mail-Relay mit SMTP-Auth (mangels Fähigkeiten von Domino, SMTP-Auth selbst durchzuführen) und ein laufender Notes Client, der 4 POP-Postfächer periodisch abgeholt hat.

Unter Linux läuft nu zumindest schon mal Domino wieder, mit dem Mailverkehr habe ich so meine Probleme.
Ich habe Fetchmail installiert und bisher für 1 POP-Konto einigerichtet.
Problem hierbei: Fetchmail holt nicht periodisch hab, obwohl es als Daemon laufen sollte und das Intervall eingestellt ist:

# Configuration created Sat Jan 27 23:38:10 2007 by fetchmailconf 1.52 $Revision: 4740 $
set postmaster "oliver"
set bouncemail
set no spambounce
set properties ""
set daemon 120
poll pop.1und1.de with proto POP3 timeout 120
user 'xxx' there with password 'xxx' is 'oliver' here keep

Hier wird auch Mail abgeholt, allerdings nur, wenn ich fetchmail manuell ausführe.

Was ich brauche wäre folgendes:
1. periodisches Abholen alle 120 Sekunden für dieses Konto
2. Einliefern nicht in das /var/mail/ Postfach, sondern Weiterleitung an einen SMTP-Host auf Port 26 - dies ist mein Domino Server "incoming" (sollte also localhost:26 sein). Diese Einstellung wird aber nicht akzeptiert, Fetchmail meldet Parsing-Fehler, wenn ich diese Zeile einfüge.

Das Senden über Domino als Relay und Weiterleiten mittels postfix (dort mit SMTP-Auth) klappt schon wunderbar.

Was ich kann ich tun, um diese Aufgabe zu lösen?

zeromancer1972
29.01.07, 21:07
Pushen ist sonst nicht meine Art, aber 40 Hits und keine Idee dabei? :confused:

MiGo
29.01.07, 21:54
2. Einliefern nicht in das /var/mail/ Postfach, sondern Weiterleitung an einen SMTP-Host auf Port 26
Fetchmail liefert afaik per default an einen lokal lauschenden SMTP-Prozess (sollte der nicht auf 25 sein? Alternativ gibt es auch die Option -S bei fetchmail - siehe man fetchmail).

Mein fetchmail macht es zumindest so:


defaults
no fetchall
keep
set postmaster "je@anger17.local"
set no bouncemail


1. periodisches Abholen alle 120 Sekunden für dieses Konto
man fetchmail :) oder fetchmail --help:
-d, --daemon alle n Sekunden als Daemon laufen

Jinto
29.01.07, 22:20
Verstehe deinen Aufbau nicht ganz, wie wäre es mit ASCII-Art?

Bist du sicher das fetchmail als Daemon läuft? Beweise? ( ps aux|grep fetchmail )

zeromancer1972
29.01.07, 23:40
Nun ja, im man steht, dass ein set daemon xxx reichen sollte, dass fetchmail als daemon läuft, da der Prozess an sich ja nur beim Aufruf getriggert wird und dann eben läuft - oder aber auch nicht.
Es gibt wohl die Option, auch in ein SMTP-Postserver einzuliefern, aber dieses wird nicht akzeptiert.
Logs poste ich gerne nach, wenn ich wieder näher am Server bin (zur Zeit ca. 500km weit entfernt davon)

MiGo
30.01.07, 00:37
Es gibt wohl die Option, auch in ein SMTP-Postserver einzuliefern, aber dieses wird nicht akzeptiert.
Eigentlich sollte das die Vorgabe sein - zumindest macht das (wie gesagt) mein fetchmail so (debian sarge). Gibts Fehlermeldungen, wenn du die Option angibst? Geht das "daemonisieren" per Kommandozeile (also nicht per .fetchmailrc)?

zeromancer1972
30.01.07, 01:14
Wie gesagt, gebt mir Zeit bis Mittwoch Nacht oder Donnerstagabend - da sitze ich wieder in der Nähe der Maschine.
Ich habe es bisher mit fetchmailconf eingerichtet.
Wenn ich ich irre, dann wurde in der .fetchmailrc (in /root) auch ein Eintrag wie

smtphost 'localhost:26'
eingetragen, was dem gewünschten entsprechen würde.
Fetchmail sagte aber bei manuellem Aufruf sowas wie

error parsing configuration
Den Wortlaut muss allerdings bis auf weiteres schuldig bleiben, aber er folgt. :)

tschloss
30.01.07, 07:28
http://fetchmail.berlios.de/fetchmail-man.html#7 sagt:

-S <hosts> | --smtphost <hosts>
(Keyword: smtp[host]) Specify a hunt list of hosts to forward mail to (one or more hostnames, comma-separated). Hosts are tried in list order; the first one that is up becomes the forwarding target for the current run. If this option is not specified, ’localhost’ is used as the default. Each hostname may have a port number following the host name. The port number is separated from the host name by a slash; the default port is "smtp". If you specify an absolute path name (beginning with a /), it will be interpreted as the name of a UNIX socket accepting LMTP connections (such as is supported by the Cyrus IMAP daemon) Example:

--smtphost server1,server2/2525,server3,/var/imap/socket/lmtp

zeromancer1972
30.01.07, 18:32
Moin!

Danke, tschloss! Sitze momentan im IC, probiere nachher aber mal

localhost/26
aus :-)
Melde mich dann wieder, ob es geklappt hat!

zeromancer1972
30.01.07, 23:12
Tja also so wird das nix.
Ich habe folgende .fetchmailrc in /root:

# Configuration created Tue Jan 30 22:40:59 2007 by fetchmailconf 1.52 $Revision: 4740 $
set postmaster "oliver"
set bouncemail
set no spambounce
set properties ""
set daemon 120
poll pop.1und1.de with proto POP3 timeout 120
user 'account_1' there with password 'pass1' is 'oliver.busse@oliverbusse.com' here options keep
smtphost localhost/10025


Der SMTP Listener auf 10025 ist Domino, der auch die Empfängeradresse zuordnen können sollte. Die Mail kommt aber nicht mal dort an, Domino bringt keine Fehlermeldung auf Nichtzustellung.
Fetchmail läuft als Daemon, tut aber nichts - nachweislich. Alle Log-Einträge resultieren auf meiner manuellen Ausführung.
Ist localhost nicht als Hostname geeignet?

Direkt ins Terminal getippt liefer fetchmail keine Fehlermeldung beim Aufruf, die Daemonisierung geht ebenfalls ohne Fehler durch. Ob der Daemon dann läuft, kann ich so nicht beurteilen.

zeromancer1972
30.01.07, 23:36
Ok, mit der obigen Konfig passiert folgendes:
Mails werden geholt und an die angegebene Adresse weitergeleitet (Domino reagiert dann entsprechend). Problem: es wird nicht wie gewünscht Port 10025 sondern normal 25 genutzt, mit der Folge, dass diese Mail dann abermals mit postfix gesendet wird - ich hatte eben nach diversen Testläufen satte 188 Mail in meiner Mailbox :D
Also wie bringe ich fetchmail bei, lokal an einen anderen Port zu senden?

zeromancer1972
30.01.07, 23:45
Nochwas: trotzdem ich "keep" entfernt habe, ist die Mail noch auf dem Server (1und1) :(

zeromancer1972
31.01.07, 00:24
Ich stelle die Frage nochmal anders: ist es möglich, postfix und fetchmail auf derselben Maschine laufen zu lassen, ohne dass dabei Unfug entsteht?
Ich meine: wenn ich mit fetchmail Mails hole, diese dann automatisch mittels SMTP auf localhost gepackt werden, sendet postfix diese sofort weiter - das macht keinen Sinn.

tschloss
31.01.07, 07:34
Ich stelle die Frage nochmal anders: ist es möglich, postfix und fetchmail auf derselben Maschine laufen zu lassen, ohne dass dabei Unfug entsteht?
Ich meine: wenn ich mit fetchmail Mails hole, diese dann automatisch mittels SMTP auf localhost gepackt werden, sendet postfix diese sofort weiter - das macht keinen Sinn.

Natürlich kann fetchmail die Mails an einen lokalen Postfix übergeben - das ist auch die Standardkonstellation.
Wozu das gut sein soll - außer für eine Spam-Vorfilterung - weiss ich jedoch nicht. Postfix müßte dann ja so konfiguriert sein, dass es alle Mails an den SMTP-Dienst von Domino weiterreicht - den Hop kann man sich auch sparen. (Aber ich gebe zu, dass mir die Verschaltung und die Logik deiner MTAs nicht klar ist)

Statt keep zu entfernen versuche es mal mit "nokeep" oder "no keep" - habe die Syntax nicht im Kopf.

Fetchmail finde ich ziemlich zickig, wenn es um Options geht und die Stelle, wo sie definiert werden. Da gibt es zB auch Reihenfolgen zu wahren.
Ich würde diese Option mal als Commandlineswitch (--smtphost localhost/10025) mitgeben (es soll ja auch für alle Mails gelten, oder).

zeromancer1972
31.01.07, 10:56
Ich versuche mal, zu zeichnen:



Mails senden (klappt schon)
Domino --> outgoing 25 --> postfix mit SMTPauth --> Internet

Mails abholen
Internet --> fetchmail --> incoming 10025 --> Domino SMTP --> interne Weiterverarbeitung

Der normale Weg von fetchmail, lokal an Port 25 die Mails zu senden muss geändert werden - es muss der Port 10025 benutzt werden, da sonst ja wieder postfix aktiv wird. Es soll aber Domino aktiv werden, der dann intern die Mails routet.

tschloss
31.01.07, 11:38
Ich versuche mal, zu zeichnen:



Mails senden (klappt schon)
Domino --> outgoing 25 --> postfix mit SMTPauth --> Internet

Mails abholen
Internet --> fetchmail --> incoming 10025 --> Domino SMTP --> interne Weiterverarbeitung

Der normale Weg von fetchmail, lokal an Port 25 die Mails zu senden muss geändert werden - es muss der Port 10025 benutzt werden, da sonst ja wieder postfix aktiv wird. Es soll aber Domino aktiv werden, der dann intern die Mails routet.

Ah, ok.
Hast du das mit dem smtphost per CL-Switch schon probiert?

zeromancer1972
31.01.07, 12:54
Ah, ok.
Hast du das mit dem smtphost per CL-Switch schon probiert?

Wooo bitte was?

tschloss
31.01.07, 13:23
Wooo bitte was?

Statt die fetchmailrc anzureichern beim Aufruf auf der Commandline ("CL") einen Optionsswitch "--smtphost localhost/10025" mitgeben.

zeromancer1972
31.01.07, 20:19
Ah ok. Das hat funktioniert, ich habe es dennoch wieder in die .fetchmailrc eingetragen. Der Fehler war, dass dort ein Zeilenumbruch war - es muss alles in eine Zeile geschrieben werden.
Ich habe noch ein Problem mit der internen Zustelladresse, aberdas bekomme ich auch noch hin :)
Danach werde ich beobachten, ob die Daemon-Geschichte läuft.
Danke bis hier hin erst einmal :)

zeromancer1972
31.01.07, 22:43
Jetzt sendet postfix nicht mehr bzw. nur noch Mist, mit einem falschen Namen, den ich nie irgendwo angegeben habe - ich gebs bald auf :(

zeromancer1972
31.01.07, 22:55
Nachtrag:
Mach dicht das Ding hier, es ist unmöglich, diese Kombi zum Spielen zu bringen, weil Domino einfach zu blöd ist. :mad:
Der schickt alles was rein kommt sofort an postfix weiter, das dämliche Teil - obwohl ich einen anderen Inbound anspreche als der Outbound - die Logik soll mir IBM mal klar machen...
Hab keine Lust mehr.
Danke trotzdem!

zeromancer1972
01.02.07, 00:51
Ich weiss nix mehr. Postfix habe ich entsprechend mit canonical_maps ausgestattet, damit ich den Absendernamen angeben kann. Kann es sein, dass 1und1 nicht für richtige Mailgeschichten ausgelegt ist? Die weisen selbst diese Mails ab.
Ich gebe mich geschlagen, muss doch wieder Windows drauf und diese kranke Kombination :(

zeromancer1972
01.02.07, 20:24
Mann mann mann, was für eine Nacht und der Tag danach!

1. "Es" sendet :)
2. "Es" empfängt
3. Domino ist überlistet :D
4. Domino stellt lokal zu *freu*
5. fetchmail läuft nicht als Daemon :(

Auszug aus meiner .fetchmailrc in /root

defaults
set no bouncemail
set invisible
set daemon 300
...

uswusf.

Wenn fetchmail beim Booten mitgestartet wird, dann sollte doch set daemon in der Datei für den Dienst-Modus sorgen - oder hab ich da was falsch verstanden?

Ich könnte natürlich nach dem Booten immer lustig als User den Dienst mit fetchmail -d 300 starten, aber das sollte bei einer Maschine ohne Keyboard wohl nicht sein, gell? ;)

Wie bekomme ich das Ding als Daemon?

zeromancer1972
01.02.07, 20:35
Möööp. danke - ich helfe mir mal wieder selbst :D
Ich hatte fetchmail vorübergehend deinstalliert, danach wieder draufgepackt.

Daraufhin wurde

/etc/default/fetchmail
neu angelegt und die besagte

START_DAEMON=no

Kann ja so nix werden :D

Die einen sagen so, die anderen sagen so: ich habe zur Sicherheit die .fetchmailrc aus /root noch nach

/etc/fetchmailrc
kopiert. Ob es das auch noch braucht, weiss ich nicht - interessiert mich nun auch nicht mehr :D