PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mailbox datei erneut an den Mailserver



READY
17.08.03, 06:17
Hallo..

mir is da was blödes passiert: fetchmail hat mails abgerufen, der cyrus imap war aber nicht gestartet. Somit hat er alle Mails in die root Mailbox geschrieben, als ein File.
Gibts ne Möglichkeit dieses File wieder zum MTA zu schicken, der die Mails dann weiter verteilt oder ähnliches?
mit
cat /var/spool/mail/root | mail
geht es schonmal nicht *g

und

oak:/var/spool/mail # cat root | /usr/lib/cyrus/bin/deliver -e -a hoka -m user.hoka.Posteingang.eMail
+user.hoka.Posteingang.eMail: Message contains invalid header

evtl wisst ihr noch was?
Wäre um jede Hilfe dankbar!
MfG

Jasper
17.08.03, 21:57
Original geschrieben von r4DiC4L
oak:/var/spool/mail # cat root | /usr/lib/cyrus/bin/deliver -e -a hoka -m user.hoka.Posteingang.eMail
+user.hoka.Posteingang.eMail: Message contains invalid header


entferne alle zeilen der form

From user@host.domain.tld ....

das sind keine gültigen smtp-header und daran stört sich cyrus.

warum lässt du die mails nicht von fetchmail an deinen lokalen mta schicken, der sie dann an cyrus per lmtp weiterschickt? so bleibt die mail in der queue von deinem mta liegen wo sie mit einem queueflush leicht und locker an cyrus neu versendet werden kann.

-j

READY
18.08.03, 02:18
Danke für den Tip, hab alle '^From' rausgenommen, jetzt bringt er mir garkeine Meldung.
Und in der Mailbox befinden sich dann auch keine Daten :/

MfG

Jinto
18.08.03, 17:26
reicht es nicht einfach die mbox datei des users root zu deinem gewünschten user zu kopieren?

DerLipper[TuX]
18.08.03, 18:05
Original geschrieben von Jinto
reicht es nicht einfach die mbox datei des users root zu deinem gewünschten user zu kopieren?

Das funktioniert mit nem imap-server nicht so richtig fürchte ich.

Jinto
18.08.03, 19:16
Original geschrieben von DerLipper[TuX]
Das funktioniert mit nem imap-server nicht so richtig fürchte ich. Damit könntest du recht haben. :)
Aber vielleicht klappts ja mit dem Kopieren des/der Verzeichnis(se) (das habe ich bisher aber noch nicht selbst ausprobiert).

Jasper
19.08.03, 00:10
Original geschrieben von Jinto
Damit könntest du recht haben. :)
Aber vielleicht klappts ja mit dem Kopieren des/der Verzeichnis(se) (das habe ich bisher aber noch nicht selbst ausprobiert).

man kann das mbox-file aufsplitten ( 1 file pro message), die files cyrus unterjubeln und den index neu aufbauen. allerdings ist das umständlicher als alle "from" zeilen zu entfernen und mittels cyr_deliver das ganze zu importieren.

ist das problem eigentlich gelöst oder nicht?

-j

READY
20.08.03, 11:30
Nein es ist noch nicht gelöst.. naja die 'From's entfernen is ja nich das Progblem:

cat root | grep -v '^From' > root_new

Nur das aufsplitten bereitet mir sorgen, da es sich ca um 400-500Mails haneln müsste..

Ich habe mal Probiert das mailbox File mit dem KMail mailclient direkt zu öffnen..
Ich erhalte den effekt, das mail 1-26 KOrrekt darestellt werden (das sind die Mails die wirklich an den user root gingen,also Systemmails). Die Restlichen werden alle incl. Header in der 27ten Mail dargestellt.. allerdings fand ich auch keine auffälligkeiten was an den anderen Mails so anders ist, das so etwas passiert!

Jasper
20.08.03, 19:33
Original geschrieben von r4DiC4L

Nur das aufsplitten bereitet mir sorgen, da es sich ca um 400-500Mails haneln müsste..


achso, das aufsplitten erledigt 'formail'.

-j

READY
20.08.03, 22:13
Ich verstehe nicht warum, aber formail fügt mir immer wieder einen From Header hinzu :/

Mein cmd is:

cat root | grep -v "^From" | formail -ds /usr/lib/cyrus/bin/deliver hoka.ligno.com

.. wenn ich statt dem deliver nen "less" dahinter schalte seh ich eben das mit dem From header.. die mails sind aber einzeln, das passt schon mal..

allerdings weiss ich auch nicht, wie ich draus einzelne dateien bekommen.. er sendet ja immernur an STDOUT bzw an das programm das mit dem -s Parameter aufgerufen wird..

Jasper
21.08.03, 23:53
Original geschrieben von r4DiC4L
Ich verstehe nicht warum, aber formail fügt mir immer wieder einen From Header hinzu :/

Mein cmd is:

cat root | grep -v "^From" | formail -ds /usr/lib/cyrus/bin/deliver hoka.ligno.com

.. wenn ich statt dem deliver nen "less" dahinter schalte seh ich eben das mit dem From header.. die mails sind aber einzeln, das passt schon mal..


du brauchst noch parameter -f

du musst deinen regex ändern -> '^From ' (1 blank nach from)



allerdings weiss ich auch nicht, wie ich draus einzelne dateien bekommen.. er sendet ja immernur an STDOUT bzw an das programm das mit dem -s Parameter aufgerufen wird..

du brauchst keine einzelne dateien. formail ruft für jede mail das angegebene kommando auf. damit werden die mails nacheinander in cyrus importiert. das wars doch, was du wolltest, oder? wenn du einzelne mailfiles haben willst, gib ein shellskript an, dass die daten von stdin liest und in ein file schreibt.

-j

READY
22.08.03, 01:19
Hi

Danke Jasper. Das hat nun funktioniert! Mails sind wieder da wo sie sein sollten!

Das mit dem regex spielt doch keine Rolle ob da jetzt noch ein leerzeichen dahinter ist, erfasst werden so oder so alle Zeilen, die mit "From" beginnen.

Und das mit den einzelnen Dateien war auch nur ein Gedanke, um die "From"'s durch ein 'grep -v' wieder raus zu bekommen, da ich nicht den passenden Parameter für formail in der Manpage fand und nicht davon ausging das das Problem so gelöst werden könne.

Auf jeden Fall danke für die entscheidenden Hinweise!

MfG

Jasper
22.08.03, 21:14
Original geschrieben von r4DiC4L

Das mit dem regex spielt doch keine Rolle ob da jetzt noch ein leerzeichen dahinter ist, erfasst werden so oder so alle Zeilen, die mit "From" beginnen.


naja, das spielt schon eine rolle. mails können auch einen header "From:" enthalten, der soll ja nicht entfernt werden.
aber wenn bei dir keine mail mit solchem header vorkommt spielt es natürlich keine rolle. viel spass mit cyrus, dem besten imap-server der welt :)

-j