[Eisfair] Mailpaket Inbox kaputt

D. Oezbilen oezbilen at gmx.net
Mi Aug 7 20:11:22 CEST 2019


Hallo Jens,

Juergen hat Recht, man sollte die INBOX ab und zu ;-) auslagern, ist 
etwas handlicher, wenn man das macht und die Mail, der Mailer ist hurtiger.


> Aber die umbenannte Datei Archiv lässt sich jetzt nicht mehr öffnen bzw. 
> es wird nichts angezeigt per email/TB Client.
Ja, wg. des Fehlers. ;-)

Dies passiert wenn die Mail in ein ca. 2GB grosse Datei geschrieben wird 
und dabei _ueber_ die 2GB gross wird. Da das nicht moeglich ist, tilt, 
game over. Irgendwelche Checksumme (der einen Mail) ist dann nicht mehr 
entsprechend und somit ist die Datei nicht mehr zu lesen, der Mailer ist 
im Loop bis zum juengsten Tag.

> Gibt es eine Möglichkeit diese zu reparieren oder zu manuell zu 
> verkleinern?
Jepp.

> 
> Gibt es eine Möglichkeit dem User anzeigen zu lassen, dass sein INBOX zu 
> gross ist/wird.
Skripten, dass Du die Groesse darstellst, eine freundliche Mail an den 
Benutzer schickst.

Meine Erfahrung ist, sie machen es trotzdem nicht, weil viele damit 
nicht umgehen koennen, es ist ja sooooo einfach auf dem Mobiltel. etc. 
Warum also soll der Benutzer sich einen Kopp machen. Sie machen es nicht.

Sprich, es wird immer wieder vorkommen, dass die Benutzer defekte 
INBOXen haben.

Hilfe so:

Es gibt paar Perlskripte,

-rwx------ 1 root root  923 Feb  5  2007 mbx2mix*
-rwx------ 1 root root 1.5K Oct 22  2006 mbxbox2mix*
-rwx------ 1 root root 1.5K Dec  4  2006 mbxdec*
-rwx------ 1 root root 5.9K Apr 28  2007 mbxfix*
-rwx------ 1 root root 2.1K Feb 28  2007 mbxsplit*
-rwx------ 1 root root 1.2K Dec  4  2006 mixdec*
-rwx------ 1 root root  14K Apr 28  2007 mixfix*
-rwx------ 1 root root 2.7K Mar 30  2007 mixwipe*
-rw-r--r-- 1 root root 1.3K Jul  9  2011 readme
-rwx------ 1 root root  308 Oct 22  2006 unixdec*

meine modifizierten:
-rwx------ 1 root root 2.1K Aug 25  2011 mbxsplit1000M*
-rwx------ 1 root root 2.1K Jul 27  2015 mbxsplit1500M*
-rwx------ 1 root root 2.1K Mar 22  2016 mbxsplit1999M*

die eine mbx/mbox reparieren, es ist etwas Handarbeit notwendig, haelt 
sich aber im Rahmen.

Wie Du oben sehen kannst, habe ich mir ein Skript etwas zurecht gebogen:

-rwx------ 1 root root 2.1K Mar 22  2016 mbxsplit1999M*

$maxsize = shift or $maxsize = 1999 * 1024 * 1024 ; # size to split

Wie gehst Du vor?

* Die INBOX irgendwohin sichern, bitte mit der Kopie arbeiten :-)
* dann mit der z.B. o.g. Mod. des Skriptes die INBOX in _zwei_ Teile 
aufteilen.
* Es entstehen INBOX.S1 und INBOX.S2
* die groessere ist einwandfrei, die benennst Du um, z.b. INBOX.alt
* @kleinere, __diese__ ist fehlerhaft, weil beim letzten Schreiben, s.o. 
die 2GB gesprengt wurde.

Hier gibt es zwei Wege

A) mit mbxfix eine neue, reparierte Datei anlegen lassen, das geht ratz 
fatz, weil die fehlerhafte .S2 auch klein ist, ist lange her, dass ich 
das Problem so geloest habe, deswegen ->B

B) Oder, was ich in letzter Zeit mehr mache -weil auch sehr einfach- die 
.S2 nochmal mit mbxsplit laufen lassen, dann wirst Du diesen Fehler 
sehen, dass 1234578896 nicht 48261218 (oder so aehnlich) uebereinstimmen.

* Suche diese beiden Zahlen, die solltest Du manuell in einem Editor 
deiner Wahl anpassen, da die Datei auch nicht gross ist, wird sie sicher 
jeder Editor laden.

Danach hast Du eine reparierte, in sich schluessige INBOX.S2

* mv INBOX.S2 INBOX
* ___und__ die alten Rechte, Zugriff und Benutzer wiedereinstellen

* Mailserver anhalten

* INBOX.S1 (oder welcher Name auch immer) muss neue abonniert werden, 
oder Du traegst diese Datei  in die

.mailboxlist

ein. Auch hierbei muessen die Rechte/der Benutzer passen.

* INBOX (kleeeeein) ist jetzt die neue INBOX

* Mailserver starten. Und sich ueber die hurtige Darstellung freuen. ;-)

Es funktioniert, ich (muss) mache dies oft genug, trotz der Ansage, 
trotz der Bitte, die Benutzer folgen nicht, ist Ihnen einfach egal. Da 
keine Mails verloren gehen, ist es eine rel. entspannte Arbeit, weil aus 
/var/spool die Mails *nicht* zu gestellt werden (koennen).

Viel Erfolg, ich schicke Dir die Dateien per PM.
Derya

PS: um das alles vorzubeugen, koenntest Du die Groesse der INBOX per 
cron detektieren, dann, wenn der Benutzer LMA-sagt/handelt, so bewegst 
Du die gefaehrlich grosse INBOX in irgendwas um, und schiebst dem 
Benutzer eine leere (Rechte/Benutzer angepasste) 2048 Byte grosse ;-) 
INBOX rein. Dann noch eine Erinnerungsmail, wo/wie er die alte knapp 2GB 
findet, handhabt. Als Goodie tragest Du diese Datei auch noch per Skript 
in .mailboxlist ein. Fertig ist die Laube. ;-)


Mehr Informationen über die Mailingliste Eisfair