[PATCH]: XMail funktioniert

Nur mal als Nachfrage: Ich habe bei meinen ersten Versuchen das Binary und das ge"tar"te MailRoot-Verzeichznis auf die Box kopiert (nach /tmp) und dann einfach das tar vom MailRoot unter /var entpackt (ohne "bins" in diesem Baum). Dann nur in ctrlaccounts.tab einen User eingetragen, die Env-Variable "MAIL_ROOT" sowie "MAIL_CMD_LINE" gesetzt und /tmp/XMail aufgerufen. Also (wenn mich meine Erinnerung nicht täuscht) lagen dabei keine Binaries im MailRoot/bin.
Alles andere habe ich dann über phpxmail gemacht.

Meine zwei angedachten Ansätze für die MailRoot-Struktur waren

- MailRoot unter /var/ einhängen, aber die "großen" Verzeichnisse (domains, spool, logs) dann per Link auf einen externen Datenträger verweisen
- oder Mailroot komplett direkt dorthin ablegen.

Jörg
 
@mehle: Weshalb sollen denn die Binaries ins Conig-Verzeichnis? Finde keinen Grund dafür. Deshalb wird es dann auch keine Probleme wegen Links geben. Die gibt es nur wenn das "chown" über eine Fat-Partition läuft ;-) Vorteil ist dann auch noch dass man zusätzliche Dateien anlegen kann, ohne nochmal einen Lunk zu flashen
PS: XMail zu konfigurieren find ich ziehmlich aufwändig. Forward über gmx (auth!) will einfach nicht. Ich bin wohl auch nicht der einzigste
 
Hier ein neuer Patch:

- MailRoot ist jetzt /mod/etc/xmail - keine links in /usr/lib/MailRoot mehr

- xmail kann mit root gestartet werden

- im Webfrontend ist nun eine genaue Erläuterung angegeben, wie man phpxmail installiert, um eine komfortable Konfig-Oberfläche für Xmail zu haben

- den xmail Patch von MaxMuster angeschaut und die xmail Komandozeilenparameter abgeglichen (im Endeffekt wird für jeden Service nur ein Prozess gestartet)

- verschiedene Sachen getestet: Email versandt/empfang aus dem Internet, POP3 aus dem Internet, POP3-Fetching von anderen Emailservern, fast alle Konfigurationen welche man via phpxmail machen kann

UPDATE:

- MaxMuster/cuma: die binaries liegen noch unter /usr/lib/MailRoot/ damit man nur diese binaries im MAILROOT sehen kann. Alles andere wird auf die externe Platte geschoben und dann von /mod/etc/xmail aus verlinkt. /mod/etc/xmail ist nun das MailRoot, welches dynamisch von der rc.xmail aufgebaut wird.

Ciao
Stephan
 

Anhänge

  • xmail-20091220.patch.bz2
    16.4 KB · Aufrufe: 8
Hier ein neues Update:

- es werden keine Links mehr verwendet - FAT unterstützt ja auch symlinks :)

- kleine kosmetische Updates im Webfrontend

Frage an euch: Um PHPXmail zu verwenden (siehe Instruktionen im Webfrontend) brauchen wir einen Admin Account. Sollen wir einen Admin-Account automatisch einrichten (i.e. mit vorgegebenen Passwort)? Der Account kann nur via localhost verwendet werden.

Ich denke, dass der Patch reif ist für die Integration in trunk. Ich bitte um Aufnahme.

Ich bitte auch den Patch, den ich im lighttpd-Thread vor ein paar Tagen veröffentlicht habe, zu integrieren, da ansonsten PHPXmail (und im Endeffekt jede PHP Applikation welche auf Cookies basiert) nicht funktioniert.

Danke
Stephan
 

Anhänge

  • xmail-20091223.patch.bz2
    16.4 KB · Aufrufe: 9
:-( du hast Recht!

Auf FAT kann man keine symlinks anlegen. Ich hatte mich irre leiten lassen, da ich irgendwo einen entsprechenden Patch für 2.4.x gefunden habe.

Ich mache einen neuen Patch

Ciao
Stephan
 
Hab die alte Version der rc.xmail und den Rest vom 23.12 eingecheckt: Trunk #4107
 
Ich habe das xmail-Paket ein wenig überarbeitet (Trunk #4108), jeder fühle sich frei zu testen (ich hab's zwar, aber wer weiss ;-)).

Nicht vergessen:
Code:
make xmail-dirclean && make
 
Ich habe die Neuerungen noch nicht getestet, aber danke an alle, auch für das lighttpd update - dies ist notwendig, damit PHPXmail im chroot funktioniert. Ich werde es in den nächsten Tagen testen.

UPDATE: eine kleine Änderung (noch nicht getestet) - bitte so weit wie möglich auf TMP-Dateien verzichten! Siehe Anhang

Ich brauche aber eure Tipps. Während der Arbeit mit Xmail habe ich eine Tmp-Race Condition gefunden, die mit der Version 1.27 gefixt wird. Der Fix sieht aber so aus, dass eine Tmp Datei mit Zufallszahlen im Namen erzeugt wird. Die Zufallszahlen kommen von OpenSSL! D.h. mit der Version 1.27 müssen wir eine Änderung der Logik an Xmail durchführen, um die OpenSSL-Unterstützung zu entfernen.

Habt ihr eine Idee, wie man sauber eine Tmp-Datei erzeugt. Gibt es auf der Box ein mkstemp()?

UPDATE II: mktemp und mkstemp - existieren. Es lässt sich also ein einfacher Patch erstellen

UPDATE III: ich habe den Patch überarbeitet - die Prüfung für die binaries und domains ist doch nicht notwendig, zumindest ist mir nicht aufgefallen, warum die Prüfung gemacht werden sollte.

UPDATE IV: noch eine kleine Erweiterung von xmail.mk: domains/xmailserver.test wird nicht mehr ins tar kopiert.

Danke
Stephan
 

Anhänge

  • xmail-20091227-3.patch.bz2
    882 Bytes · Aufrufe: 7
Zuletzt bearbeitet:
Leider nein, hab aber auch noch ein Problem.
Manchmal kann ich XMail mit "kill" nicht beenden, nur ein "kill -9" hilft. Ist das bei euch auch schon aufgetreten?
 
Hi cuma,

dieses Problem hatte ich noch nicht. Bitte aber immer ein kill auf die PID in /var/run/XMail.pid machen - nicht auf einen der anderen Prozesse.

Ciao
Stephan
 
Vielleicht war das mein Fehler
 
PHPXmail ist jetzt im trunk, läuft mit dem normalen busybox httpd innerhalb der freetz-WebUI (http://fritz.box:81/phpxmail/index.html).
Ausserdem hab ich die Prüfroutine im rc.xmail-config auf tar-Archiv umgestellt, wird kleiner und sind weniger default-Dateien im Image.
 
Wie verwaltest du denn ctrlaccounts.tab von Xmail wenn du PHPXmail installierst? Wenn PHPXmail von Haus aus bei Freetz dabei ist geben wir doch den Eindruck mit, dass alles sauber integriert ist. D.h. ctrlaccounts.tab muss ja irgendwie automatisch gefüllt werden, oder?

Ciao
Stephan

PS: ich bitte darum, meinen Patch zu berücksichtigen - die TMP Datei darf nicht so verwendet werden, wie es derzeit von rc.xmail gemacht wird.
 
Du hast recht, füpr die ctrlaccounts.tab sollte man sich noch was einfallen lassen.
EDIT: Ist lange her, dass ich meinen XMail eingerichtet habe, da war doch noch XMCrypt. Die Implementierung sollte nicht schwierig sein.

Das mit der TMP-Datei ist nicht schön, da stimme ich dir zu. Stört dich die die tmp-Datei im allgemeinen oder hast du ein funktionelles Problem damit? Das tar von busybox kennt leider kein --exclude-file, zumindest momentan ;-).
Prinzipiell finde ich die tar-Variante allerdings besser als die ganze Grundstruktur als default mit in das Archiv zu schmeißen.
 
Zuletzt bearbeitet:
Das Problem mit der TMP Datei ist, dass es eine klassische TMP-Race-Condition ist. Ja, ich weiss, /tmp ist im ramfs. Aber dennoch, wir sollten solch problematischen Code nicht zulassen. IMHO kann man voll auf diese Exclude-Datei verzichten:

- das domains/ Verzeichnis wird in meinem Patch nur noch leer beim make erzeugt (siehe xmail.mk) - deswegen braucht man es nicht mehr zu exkludieren

- bin/ ist gar nicht im tarball enthalten und brauch auch nicht manuell exkludiert werden

Ergo, das erstellen der TMP Datei für ein --exclude beim tar ist nicht notwendig.

Ciao
Stephan
 
OK, jetzt hab ich den Patch auch mal aufbekommen (man sollte WinRAR nicht alles zutrauen ;-)). Ich hatte das bin exclude nur sicherheitshalber in der rc.xmail, aber eigentlich hast du recht, könnte auch Problemlos rausgeschmissen werden.
Allerdings würde rc.xmail in der default Installation jetzt auch kein xmailserver.test anlegen. Dann lässt sich das auch nicht mehr sauber durch PHPXmail entfernen, da in den anderen .tab-Dateien die xmailserver.test noch enthalten ist. Evtl. könnten wir über einen Patch das ganze test-Zeugs komplett sauber entfernen (über xmail.mk).

EDIT:
Ich hab einen Patch angehangen, wo alle xmailserver.test Einträge aus den *.tab Dateien entfernt werden. Wir könnten einen Standardbenutzer für die ctrlaccounts.tab anlegen, und diesen auch bei PHPXmail als default eintragen, zb. admin/freetz oder ähnliches.
 

Anhänge

  • xmail-20091229-4.patch.bz2
    1.1 KB · Aufrufe: 9
Zuletzt bearbeitet:
Bevor ich extra einen neuen Thread aufmache, kann sich jemand vielleicht mal 'so nebenbei' das nullwebmail-0.9.2 anschauen. Ich kriege es nicht kompiliert, hab aber von C auch nicht wirklich viel Ahnung. Ich bleib beim kompilieren folgend stecken.

Code:
libnesla
make[1]: Betrete Verzeichnis '/home/markus/freetz/freetz-trunk-7270/source/nullwebmail-0.9.2/src/libnesla'
  CC objects.o
objects.c:21: error: expected identifier or ‘(’ before ‘__null’
objects.c:22: error: expected expression before ‘__null’
make[1]: *** [objects.o] Fehler 1
make[1]: Verlasse Verzeichnis '/home/markus/freetz/freetz-trunk-7270/source/nullwebmail-0.9.2/src/libnesla'
make: *** [_libnesla] Fehler 2
Anbei mein Versuch bisher.
 

Anhänge

  • nullwebmail.patch.bz2
    775 Bytes · Aufrufe: 14
Hab' zwar einen anderen Fehler bekommen, das hängt aber wahrscheinlich mit dem host-compiler zusammen, dieser darf sowieso nicht verwendet werden. Mit dem angehängten Patch geht's bei mir. Das mit LD, AR und RANLIB ist a bissl ein Hack, aber was soll's, der ganze Quellcode ist ein Mist (d.h. wenn es Alternativen gibt, lieber diese verwenden).
 

Anhänge

  • nullwebmail.patch.txt
    6.3 KB · Aufrufe: 13
Ich hab einen Patch angehangen, wo alle xmailserver.test Einträge aus den *.tab Dateien entfernt werden. Wir könnten einen Standardbenutzer für die ctrlaccounts.tab anlegen, und diesen auch bei PHPXmail als default eintragen, zb. admin/freetz oder ähnliches.

Erst einmal ist der Patch ok, aber ich würde vorschlagen, dass wir in passwd.cgi noch ein IF hinzufügen, der auch das Passwort von ctrlaccounts.tab ändert, denn ein statisches Admin-Passwort ist nicht gut.

UPDATE: Wie wäre es mit folgender Erweiterung in passwd_save.cgi:

Code:
#XMail admin account
if [ "$result" -eq 0 -a -x /usr/lib/MailRoot/bin/XMCrypt ]; then
        CONF_NAME="xmail"
        . /etc/init.d/modlibrc
        if [ -e $XMAIL_MAILLOCATION/ctrlaccounts.tab ]; then
                cat $XMAIL_MAILLOCATION/ctrlaccounts.tab | grep -v admin > $XMAIL_MAILLOCATION/ctrlaccounts.tab.$$
                xmcryptpass=$(/usr/lib/MailRoot/bin/XMCrypt $MOD_CGI_PASSWORD)
                echo -e "\"admin\"\t\"$xmcryptpass\"" >> $XMAIL_MAILLOCATION/ctrlaccounts.tab.$$
                mv $XMAIL_MAILLOCATION/ctrlaccounts.tab.$$ $XMAIL_MAILLOCATION/ctrlaccounts.tab
                /etc/init.d/rc.xmail restart
        fi
fi

Ciao
Stephan
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,195
Beiträge
2,247,819
Mitglieder
373,748
Neuestes Mitglied
fanti88
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.